在阅读Jeff的博客文章“ 保护您的Cookie:HttpOnly”之后 。 我想在我的Web应用程序中实现HttpOnly cookie。 你如何告诉tomcat使用仅用于会话的http cookie?
在下面的video中,在时间标记21:40,微软PDC发言人说,重要的是所有的JSON被包装,所以它不是一个顶级的数组: https://channel9.msdn.com/Events/PDC/PDC09/FT12 展开顶层数组的风险是什么? 我应该如何检查,看看我是否脆弱? 我从第三方购买了许多组件,并有外部供应商开发我的代码。
我应该如何防止Spring MVC中的XSS? 现在我只是将所有输出用户文本的位置放到JSTL <c:out>标记或fn:escapeXml()函数中,但这似乎很容易出错,因为我可能会错过一个地方。 有没有一个简单的系统的方法来防止这一点? 也许像一个filter或什么的? 我通过在我的控制器方法上指定@RequestParam参数来收集input。
我们有一个高安全性的应用程序,我们希望允许用户input其他用户将会看到的URL。 这引入了XSS黑客的高风险 – 一个用户可能会inputJavaScript,另一个用户最终执行。 由于我们持有敏感数据,所以这绝对不会发生。 处理这个问题的最佳做法是什么? 任何安全白名单或逃生模式单独足够好? 有关处理redirect的任何build议(例如,在链接之前的警告页面上的“此链接超出我们的网站”消息) 有没有支持用户input链接的论据? 澄清: 基本上我们的用户想要input: stackoverflow.com 并将其输出给另一个用户: <a href="http://stackoverflow.com">stackoverflow.com</a> 我真正担心的是他们在XSS黑客中使用这个。 即他们input: 警报( '砍死!'); 所以其他用户得到这个链接: <a href="alert('hacked!');">stackoverflow.com</a> 我的例子只是解释风险 – 我很清楚,JavaScript和URL是不同的东西,但通过让他们input后者,他们可能能够执行前者。 你会惊讶有多less网站可以打破这个伎俩 – HTML是更糟糕的。 如果他们知道处理链接,他们也知道清理<iframe> , <img>和聪明的CSS引用? 我正在一个高度安全的环境中工作 – 单一的XSS攻击可能会给我们带来非常高的损失。 我很高兴能够制作一个正则expression式(或者使用迄今为止的一个很好的build议),这样可以排除我所能想到的所有事情,但是这样做还可以吗?
我需要从一个网站向另一个域中托pipe的REST Web服务发出AJAX请求。 虽然这在Internet Explorer中工作得很好,但其他浏览器(如Mozilla和Google Chrome)却施加了更严格的安全限制,禁止跨站点AJAX请求。 问题是,我无法控制域名,也无法控制网站托pipe的网站服务器。 这意味着我的REST Web服务必须在其他地方运行,而且我无法使用任何redirect机制。 以下是进行asynchronous调用的JavaScript代码: var serviceUrl = "http://myservicedomain"; var payload = "<myRequest><content>Some content</content></myRequest>"; var request = new XMLHttpRequest(); request.open("POST", serviceUrl, true); // <– This fails in Mozilla Firefox amongst other browsers request.setRequestHeader("Content-type", "text/xml"); request.send(payload); 如何在Internet Explorer旁边的其他浏览器中执行此项工作?
为什么决定使用XMLHTTPRequest进行XML调用不应该跨域边界进行调用? 您可以检索JavaScript,图像,CSS,iframe,以及其他任何可以从其他域中看到的内容。 为什么Ajax HTTP请求不允许跨越域边界? 这似乎是一个奇怪的限制,考虑到唯一的办法,我可以看到它被滥用,将是如果有人将JavaScript注入页面。 但是,在这种情况下,您可以简单地向文档添加一个img,脚本或iframe元素,以使其请求第三方URL并将其发送到服务器。 [编辑] 其中一些答案指出了以下几个原因,让我们指出他们不会造成拒绝的主要原因。 XSRF(Cross Site Request Forgery,也被称为CSRF,XSRF) 你可以做XSRF攻击而不用这个。 一般来说,XMLHTTPRequest根本就不被使用,仅仅是因为以与所有主stream浏览器兼容的方式创buildXMLHTTPRequest非常困难。 如果您希望它们加载您的url,只需在url中添加一个img标记就容易了。 发布到第三方网站 <script type="text/javascript"> $.post("http://some-bank.com/transfer-money.php", { amount: "10000", to_account: "xxxx" }) </script> 可以用来完成 <body onload="document.getElementById('InvisbleForm').submit()" <div style="display:none"> <form id="InvisbleForm" action="http://some-bank.com/transfer-money.php" method="POST"> <input type="hidden" name="amount" value="10000"> <input type="hidden" name="to_account" value="xxxxx"> </form> </div> </body> JPunyon:你为什么要把漏洞留在一个新的特性中 你没有创造更多的不安全感。 你只是想方设法使用它的开发人员。 任何人想要使用这个function为邪恶(又名真棒)可以使用一些其他的方法来做到这一点。 结论 我把自己的回答标为正确,因为他指出了这个关键问题。 由于XMLHTTPRequest允许您使用凭证(cookie)发送到目标站点,并读取从站点发回的数据,并发送人员凭据,因此您可以编排一些可提交一系列表单的JavaScript,包括确认表单,完成任何生成的随机密钥,以防止XSRF。 通过这种方式,您可以像银行一样浏览目标网站,而银行的networking服务器将无法分辨出提交所有这些表单的不仅仅是一个普通用户。
我不关心其他types的攻击。 只是想知道HTML编码是否可以防止各种XSS攻击。 即使使用HTML编码,是否有某种方法可以执行XSS攻击?
目前,我申请了一个“把所有东西都扔在墙上,看看有什么坚持”的方法来阻止上述问题。 以下是我拼凑起来的function: function madSafety($string) { $string = mysql_real_escape_string($string); $string = stripslashes($string); $string = strip_tags($string); return $string; } 不过,我确信有更好的方法来做到这一点。 我正在使用FILTER_ SANITIZE_STRING,这似乎并不完全安全。 我想我在问,你们采用哪种方法,他们有多成功? 谢谢
换句话说,现在使用最多的技术来清理input和/或输出? 工业(甚至是个人用途)网站的人们用什么来解决这个问题呢?
我有一个基于JSF的Web应用程序,以MySQL作为数据库。 我已经在我的应用程序中实现了防止CSRF的代码。 现在,由于我的底层框架是JSF,我想我不必处理XSS攻击,因为它已经由UIComponent处理。 我没有在任何视图页面中使用任何JavaScript。 即使我使用,我真的需要执行代码来防止XSS攻击? 对于数据库,我们在所有的数据库交互中都使用准备好的语句和存储过程 还有什么需要处理,以防止这3种常见的攻击? 我已经通过OWASP网站和他们的作弊表 。 我需要照顾任何其他潜在的攻击媒介吗?