如何在JSP/Servlet Web应用程序中防止XSS攻击?
在下面的视频中,在时间标记21:40,Microsoft PDC演示者说重要的是所有JSON都被包装,因此它不是顶级数组:
https://channel9.msdn.com/Events/PDC/PDC09/FT12
打开顶层阵列的风险是什么?
我该如何检查,看看我是否容易受到伤害?我从第三方购买了许多组件,并有外部供应商开发我的代码.
我配置了PHP,以便启用魔术引号并关闭注册全局变量.
我会尽力为我输出的任何来自用户输入的内容调用htmlentities().
我偶尔也会搜索我的数据库,以获取xss附带的常用内容,例如......
<script
Run Code Online (Sandbox Code Playgroud)
我还应该做些什么,以及如何确保我要做的事情总是完成.
知道如何在node.js应用程序上防止XSS攻击?在那里处理删除hrefs中的javascript,onclick属性等的任何lib.从POSTed数据?
我不想为所有那些写一个正则表达式:)
有什么建议?
我有来自用户的未转发数据.
所以这样使用是安全的:
var data = '<test>a&f"#</test>'; // example data from ajax response
if (typeof(data) === 'string')
$('body').text(data);
Run Code Online (Sandbox Code Playgroud)
我可以像这样使用或者有一些问题,比如编码或某些特定的符号,我应该小心并添加更严格的验证?
我并不担心其他类型的攻击.只想知道HTML Encode是否可以防止各种XSS攻击.
即使使用HTML Encode,是否有某种方法可以进行XSS攻击?
给出以下两个html/php片段:
$_POST
和
$_POST
我需要为回显$_POST变量使用什么字符编码?我可以使用任何内置的PHP函数吗?请假设这些$_POST值尚未编码.没有任何神奇的引语.
清理基于Python的Web应用程序的用户输入的最佳方法是什么?是否有一个函数可以删除HTML字符和任何其他必要的字符组合,以防止XSS或SQL注入攻击?
我有很多用户输入$_GET和$_POST...目前我总是写mysql_real_escape_string($_GET['var'])..
我想知道你是否可以创建一个能够立即保护,转义和清理$_GET/ $_POST数组的函数,因此每次使用用户输入时都不必处理它.
我在想一个功能,例如cleanMe($input),和它里面,它应该做的mysql_real_escape_string,htmlspecialchars,strip_tags,stripslashes(我想这是所有做它的清洁与安全),然后返回$input.
这可能吗?使得对所有工作的功能$_GET和$_POST,所以你会做只有这个:
$_GET = cleanMe($_GET);
$_POST = cleanMe($_POST);
Run Code Online (Sandbox Code Playgroud)
那么在以后的代码中,当您使用eg $_GET['blabla']或者$_POST['haha']它们时,它们是安全的,剥离的等等?
试了一下自己:
function cleanMe($input) {
$input = mysql_real_escape_string($input);
$input = htmlspecialchars($input, ENT_IGNORE, 'utf-8');
$input = strip_tags($input);
$input = stripslashes($input);
return $input;
}
Run Code Online (Sandbox Code Playgroud) 我们有一个高安全性应用程序,我们希望允许用户输入其他用户将看到的URL.
这引入了XSS黑客的高风险 - 用户可能会输入另一个用户最终执行的javascript.由于我们持有敏感数据,因此必须永远不会发生这种情况.
处理这个问题的最佳做法是什么?单独的安全白名单或转义模式是否足够好?
有关处理重定向的任何建议(例如,在关注链接之前,警告页面上的"此链接在我们的网站之外"消息)
有没有支持用户输入链接的论据?
澄清:
基本上我们的用户想要输入:
stackoverflow.com
并将其输出给另一个用户:
<a href="http://stackoverflow.com">stackoverflow.com</a>
Run Code Online (Sandbox Code Playgroud)
我真正担心的是他们在XSS黑客中使用它.即他们输入:
警报( '砍死!');
所以其他用户获得此链接:
<a href="alert('hacked!');">stackoverflow.com</a>
Run Code Online (Sandbox Code Playgroud)
我的例子只是解释风险 - 我很清楚javascript和URL是不同的东西,但通过让他们输入后者,他们可能能够执行前者.
你会惊讶于你可以用这个技巧打破多少网站 - HTML更糟糕.如果他们知道处理环节上做到他们也知道消毒<iframe>,<img>并巧妙的CSS参考?
我在高安全性环境中工作 - 单个XSS黑客可能会给我们造成很大的损失.我很高兴我可以制作一个正则表达式(或使用迄今为止的一个很好的建议),可以排除我能想到的一切,但这还够吗?