我有一个脚本根据用户输入注册用户。这使用预准备语句和白名单来防止sql注入。但我很难理解XSS的预防。
根据我的理解,如果您要在页面上输出HTML,您只需要阻止XSS吗?这是什么意思???
我猜这个注册页面不适用,因为我没有输出HTML到网页?是吗?
如果我要阻止XSS,我是否使用htmlspecialchars?
答案 0 :(得分:3)
一般来说,如果您在页面上显示任何返回值,或者您要将信息插入数据库以供以后检索和显示(如用户配置文件信息),您将需要使用htmlspecialchars。
对我来说,当我进行用户注册时,如果他们无法在输入字段中输入正确的值,我会使用他们输入的值重新显示页面。在这种情况下,我用htmlspecialchars编码。
如果在任何时候,您计划将数据库中的信息重新显示到网页中(如配置文件等所述),您应该使用htmlspecialchars。
更好的安全而不是遗憾我总是说 - 从不信任用户输入
答案 1 :(得分:0)
基本上,当您将用户的输入取消消毒并显示在您的网页中时,就会发生XSS。
例如:用户输入
<script>alert('hello you are hacked');</script>
在文本框中,您在网页注册后将其显示在
中Hello, $username
这突然变成了
Hello, <script>alert('hello you are hacked');</script>
这是XSS
的形式之一防止XSS的一种有效方法就是这样
echo htmlspecialchars($varname, ENT_QUOTES, 'UTF-8');
答案 2 :(得分:0)
XSS是服务器在向客户端输出HTML(实际上是Javascript)时发生的一种攻击,当它不是故意这样做时(显然当恶意用户特意制作并提供该HTML时)。据我了解,如果你是的话,你只需要预防XSS 将HTML输出到页面上?这是什么意思???
我猜这个注册页面不适用,因为我 没有输出HTML到网页?是吗?
如果您没有输出来自用户输入的任何内容,那么您就是安全的。
如果我要阻止XSS,请使用
htmlspecialchars
吗?
是的,这就足够了。