Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/security/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Security 如果我更换所有'<';与'&;lt';?_Security_Xss - Fatal编程技术网

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开头的输入。当然。但我试图将我的示例限制为证明仅编码尖括号仍然可以利用的示例。