我已经构建了一个使用jQuery和JSON来使用ASP.NET .asmx Web服务来执行crud操作的应用程序。 应用程序和.asmx位于同一个域中。 我不介意人们远程使用.asmx的读取操作,但不希望人们随意删除东西! 我可以将我希望公开访问的方法和“隐藏”的方法拆分为2个Web服务。 如何将对“hidden”.asmx Web服务的调用锁定到其托管的同一域? 提前致谢。 编辑:有人可以对此发表评论,似乎有道理(来源: http ://www.slideshare.net/simon/web-security-horror-stories-presentation):Ajax可以设置Http标头,普通表格不能。 Ajax请求必须来自同一个域。 因此,“x-requested-with”“XMLHttpRequest”请求必须来自同一个域。
我在域A有一个网站,其中包含用于显示video的iframe,该video在YouTube上托管。 在iframe加载事件中,我试图在iframe中注册keyup事件,以便在客户端按下转义键时关闭video。 以下是我的代码示例: $(myIFrame).bind(‘load’, function() { $(myIFrame.contentWindow.document).keyup(function(event) { console.log(event.keyCode); }); alert(‘Event Registered’); }); 我收到以下例外情况: Firefox: Error: Permission denied to access property “document” Chrome: Uncaught SecurityError: Blocked a frame with origin “A” from accessing a frame with origin “https://www.youtube-nocookie.com”. Protocols, domains, and ports must match. Uncaught SecurityError: Blocked a frame with origin “A” from accessing a […]
在成功登录同一页面中的另一个视图后,我需要在位于视图中的表单中重新加载AntiForgeryToken。 我可以通过jQuery在结果登录页面输入@ Html.AntiForgeryToken()键的forms更新吗? 如果是,这是推荐和安全吗? 我该怎么做? 编辑: 在布局中我有不同的PartialViews: 部分登录: @{ Html.RenderAction(MVC.Account.LoginHeader()); } 而在另一个部分,发送评论的能力: @{ Html.RenderAction(MVC.Comment.Create()); } 要发送评论,用户必须登录,因此登录后,评论表格需要更新AntiForgeryToken,否则我会收到validation错误,因为现在登录已经不同了。 谢谢
我有一个网站需要根据用户交互增加数据库中的值。 当用户单击按钮时,会调用php脚本来增加该值。 我想保护这个脚本不被外部脚本访问。 目前,用户可以使用javascript函数编写自己的网页,该函数反复点击相同的php文件以炸毁数据库中的值。 这是我的jquery代码,用于递增: jQuery(function(){ $(‘.votebtn’).click(function(e){ var mynum = $(this).attr(‘id’).substring(0,5); $.ajax({ url:”countvote.php”, type:”GET”, data: { thenum:mynum }, cache: false, success:function(data) { alert(‘Success!’); } } }); }); }); 如何才能使本地服务器上的ajax / jquery调用只能访问’countvote.php’? 如果这不是正确的方法,我会接受任何建议,以防止我的PHP脚本被外部脚本滥用。
我有一个隐藏在每个页面上的登录表单,并在需要时显示自己onClick而不是设置新的页面请求。 我注意到,为了使登录真正安全,表单操作应指向https页面,但登录表单本身应该在https页面上。 有没有办法让弹出式登录表单安全无需整个网站https?
我的代码: function HandleSignUp() { var CurrentURL = document.URL; var obj, val; //ajax call started $.ajax({ type: “POST”, url: “../../webservice/GetAjaxDataWebService.asmx/RegisterNewUser”, data: “{‘UserFullName’: ‘” + $(‘#SignUpName’).val() + “‘,’Email’: ‘” + $(‘#SignUpEmail’).val() + “‘,’Password’: ‘” + $(‘#SignUpPassword’).val() + “‘}”, contentType: “application/json; charset=utf-8”, dataType: “json”, success: function (msg) { //msg.d contains the return value from web service call $.colorbox.close(); […]
在我们的网站中,某些页面使用SSL,但大多数页面不使用SSL(因为它们需要被Web机器人抓取)。 它几乎归结为用户登录的任何页面,但有一些例外情况是在SSL下, 但是用户首先必须从非https页面登录(登录表单是从任何页面的屏幕顶部掉落的表单)。 所以, 如何通过ajax强制请求使用SSL? 这甚至安全吗?
快速问题。 JavaScript中的Eval是不安全的,不是吗? 我有一个JSON对象作为字符串,我需要把它变成一个实际的对象,所以我可以获取数据: function PopulateSeriesFields(result) { data = eval(‘(‘ + result + ‘)’); var myFakeExample = data.exampleType } 如果它有助于我使用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”, […]