如何使用PHP和jQuery发送安全的AJAX请求

问题 所以有一段时间我一直在尝试使用不同的AJAX方法将数据发送到服务器,该服务器将被处理并存储在MySQL数据库中。 AJAX请求命中api.php的页面使用PHP的PDO预处理语句来保存数据,因此MySQL注入并不是真正的问题,需要加密的密码或数据也由api.php处理。我在这里问的是什么。 我的问题更多地涉及如何确保数据在从客户端传输到服务器时是安全的。 方法 我目前有(对于我在下面列出的登录示例): 域上运行的SSL证书/ HTTPS。 某些AJAX请求(显然不是这个登录请求示例,因为没有会话开始)只有在PHP会话在整个站点上有效时才有效(在本例中用于login.php和api.php )。 访问函数时对api.php速率限制。 PHP PDO在与api.php的数据库交互时准备语句。 加密api.php敏感数据(与问题无关)。 问题 最后,我的问题是: 这种使用异步HTTP(Ajax)请求的方法是否足够安全,而不仅仅是将数据提交到PHP页面并重定向? (这种方式改善了用户的体验)。 如何检查我的用户发送的数据是否未被篡改? 我是否合理地保护用户的数据,如果没有,我还能做什么? 这个例子 我了解每个人都有不同的方法来处理他们的网站数据和传输数据。 我也明白,无论你做什么,你永远不会受到100%的保护,因为你的系统可能存在漏洞和方法,你无法解释。 我正在寻找有关安全发送数据的一般方法的反馈/改进,而不是批评下面的具体代码,因为它只是一个例子。 但任何建设性的答案都是受欢迎的。 感谢您花时间阅读/回答。 function loginUser() { var process = “loginUser”; var data = $(“form”).serializeArray(); data[1].value = SHA512(data[1].value); // sha then encrypt on api.php page data = JSON.stringify(data); $(“#loginButton”).html(‘ Login’); $.ajax({ type: “POST”, […]

在动态添加HTML到jquery mobile之后刷新一个部分

可能重复: 动态添加可折叠元素 我已经看到了一些这方面的post,但它们似乎都没有真正应用,或者我只是读错了。 我有一些HTML从服务器提供给我,我真的无法改变。 我想要做的是,抓住HTML,将其插入div元素并让jQuery mobile在它上面做样式。 我可能需要多次这样做,这就是痛苦发生的地方。 当我第一次插入它时,它一切都很好,jqm拾取添加和完美的样式。 如果我第二次尝试,jqm根本不会拿起它。 我已经尝试制作一个我复制和修改的“模板”,或者只是插入静态HTML并且都不起作用。 我在下面有一个测试用例,你会看到,点击一次添加新列表,没关系,再次点击它就会得到一个没有样式的选择。 我在某处读过使用直播活动可能会有效,但在这种情况下也不行。 另外,我知道jQuery mobile中的选择列表selectmenu方法,但我得到的项目可能是单个/多个选择列表,一堆单选按钮甚至一组自由文本字段。 正如你所看到的,我也尝试在最顶层的元素上运行页面方法,我也尝试在我即将添加的元素上运行页面,但都无济于事。 🙁 测试: List insert test add new list add templated list clear 1 2 3 4 5 jkghjkgh $(‘#addips’).live(‘click’, (function() { l = $(‘#thelisttemplate’).clone() $(‘#thelist’).html(”) $(‘#thelist’).append($(l)) $(‘#thelist’).page() })) $(‘#addlist’).click(function() { l = $(“12345″) $(‘#thelist’).html(”) $(‘#thelist’).append($(l)) $(‘#thelist’).page() //$(‘#theplace’).after($(“12345”)) //$(‘#thelisttemplate’).page() }) $(‘#clearall’).click(function() […]

Javascript – 根据ajax响应停止表单提交

我想使用AJAX来确定表单的值是否可以接受(这不是表单validation)。 AJAX result将确定表单是否已提交。 下面,您将看到我在提交表单时执行AJAX调用,并根据返回的内容(可接受的空白或不可接受的错误消息),我想return true; 或者return false; $(“form”).submit 。 我怀疑我在AJAX的success:遇到了麻烦success: 。 请帮我从AJAX调用中获取result ,以便我可以执行if (result == “”) { return true; } else { return false; } if (result == “”) { return true; } else { return false; } if (result == “”) { return true; } else { return false; } 。 工作方式: $(“form”).submit(function(e) { […]

如何使用angularjs ng-model绑定Bootstrap-datepicker元素?

这是日期字段的html: Check out $(‘#check-out’).datepicker(); datepicker显示在输入字段中。 但是如果我在我的控制器中执行此操作: console.log($scope.checkOut); 我undefined in the javascript console 。 怎么解决这个? 有没有更好的方法来使用带有angularjs bootstrap-datepicker angularjs ? 我不想使用angular-ui/angular-strap因为我的项目是用javascript库膨胀的。

jQuery属性名称包含

我正在尝试定位包含某个单词的属性名称而不是您想要的那种方式。 让我们说: 如何定位属性名称中包含’data-foo’元素?

获取目录中所有文件夹的列表

所以我有一个如下所示的文件系统: Music – 001 — song.mp3 – 002 — song.mp3 – 003 – 004 – 005 — song.mp3 musicplayer.html musicplayer.js 我很好奇是否有可能得到一个关于所有文件夹名称的列表? 这个javascript,html5,甚至是jQuery,我无法安装任何东西。

JQuery同步动画

在许多情况下,我希望动画同步执行。 特别是当我想制作一系列连续动画时。 有没有一种简单的方法可以使jQuery animate函数调用同步? 我想到的唯一方法是在动画结束时将标志设置为true并等待此标志。

将js Array()转换为JSon对象以与JQuery .ajax一起使用

在我的应用程序中,我需要通过ajax发送一个javascript数组对象到PHP脚本。 像这样的东西: var saveData = Array(); saveData[“a”] = 2; saveData[“c”] = 1; alert(saveData); $.ajax({ type: “POST”, url: “salvaPreventivo.php”, data:saveData, async:true }); 数组的索引是字符串而不是int,因此像saveData.join(’&’)这样的东西不起作用。 想法? 提前致谢

设置一个元素的长度(高度或宽度)减去另一个元素的可变长度,即calc(x – y),其中y未知

我知道我们可以在定义长度时使用calc : flex-basis: calc(33.33% – 60px); left: calc(50% – 25px); height: calc(100em/5); 但是如果长度是可变的呢? height: calc(100% – <>); 要么 width: calc(100% – 50px – <>); 在CSS中有一种标准的方法吗? 我知道使用flexbox和表可以完成整个任务,但我想知道CSS是否提供了一种更简单的方法。 Flexbox,表格和简单的Javascript是可接受的替代方案。 高度演示 宽度演示

从Form input type =“submit”打开Fancybox(或equiv)

有没有办法让fancybox( http://fancy.klade.lv/ )或任何其他灯箱提交FORM(带图像按钮)? HTML看起来像这样: 这些不会做: $(“form”).fancybox(); $(“input”).fancybox(); $(“input[name=’weiter’]”).fancybox(); 有人发现我的错误或有变通方法或替代脚本? 提前致谢