Security 如果我更换所有'<';与'&;lt';?
我想知道使网站安全的最低要求是什么Security 如果我更换所有'<';与'&;lt';?,security,xss,Security,Xss,我想知道使网站安全的最低要求是什么 如果我简单地替换,如果您逃避所有用户输入,您应该是安全的 这意味着它出现在任何地方。即使是个人资料中的用户名。否。您必须转义所有用户输入,无论它包含什么内容 很大程度上取决于上下文 而且,编码不只是一个想法。你应该只编码所有有特殊意义的字符,可以用于XSS “ ” & 对于一个简单的例子来说,编码“小于”并不重要是这样的 欢迎访问Dodgy网站。请链接到您的主页 恶意用户进入 http://www.example.com" onclick="window
如果我简单地替换
,如果您逃避所有用户输入,您应该是安全的
这意味着它出现在任何地方。即使是个人资料中的用户名。否。您必须转义所有用户输入,无论它包含什么内容 很大程度上取决于上下文
而且,编码不只是一个想法。你应该只编码所有有特殊意义的字符,可以用于XSS
“
”
&
对于一个简单的例子来说,编码“小于”并不重要是这样的
欢迎访问Dodgy网站。请链接到您的主页
恶意用户进入
http://www.example.com" onclick="window.location = 'http://nasty.com'; return false;
这显然变成了
<a href="http://www.example.com" onclick="window.location = 'http://nasty.com'; return false;">View user's website</a>
如果您对双引号进行了编码,则该攻击将无效。页面编码也会起作用。即-如果您的页面字符集不正确或在所有适用的位置都不匹配,则存在潜在的漏洞。有关详细信息,请参阅。根据您使用的框架,许多页面现在都有input验证模块。当我讲课时,我告诉软件学生的一个关键部分是使用已经存在的输入验证模块。
重新发明轮子通常不如使用已经存在的经过尝试和测试的模块有效。Net具有您可能需要的大部分内置功能-很容易将其列入白名单(您知道只允许输入)或黑名单(效率稍低,因为已知的“坏”东西总是会改变,但仍然有价值)尤其是用户名。当社交网站上的用户能够将JavaScript输入用户名时,可能会发生有趣的事情。此类网站上经常会显示用户列表…:-)也就是说,你真的应该避开每一个用户输入,或者说每一个不可信的输入。@paprika:每个人都会受到用户名的影响。。。我没有想到。你真的给你儿子起名叫“罗伯特”吗?;DROP TABLE Students;--
?我把你的HTML十六进制复制粘贴到一个测试页面,就像我在服务器端输出东西一样。文本警报('xss!')
出现在页面上,但它实际上没有运行脚本。HTML十六进制或Base 64编码最终如何运行?@alex-如果我唯一输出内容的地方是$outputcontenthere,你认为只有小于的编码才可以吗?@Kyle可能,但我不会冒险。写e一个适合HTML输出的编码器。不值得冒险。在您的示例中,您还应该避开以javascript:
@Baju开头的输入。当然。但我试图将我的示例限制为证明仅编码尖括号仍然可以利用的示例。