输入复选框/收音机/选择是否容易受到XSS攻击?

时间:2014-12-09 21:45:10

标签: php input xss

如果我提交输入复选框或收音机或选择,具有固定内容,是否可以从XSS中受到攻击?如果有,怎么样?如何预防?

4 个答案:

答案 0 :(得分:1)

是否固定内容,这并不重要。一个&#34;攻击者&#34;如果他愿意,可以改变它。但是......即使它没有改变:如果它依赖于客户发送的数据,一切都容易受到XSS的攻击。<​​/ p>

如何预防? 逃避一切!

如何做到这一点......这取决于你可以做服务器端(PHP等)或客户端(javascript)。但不要依赖javascript。攻击者可以强制数据不被javascript间隔或解析。

所以....逃离服务器端

PHP:

$safeData = htmlentities($vulnerableData);

答案 1 :(得分:0)

如果用户可以看到它,他们可以修改它。始终验证每个输入。

答案 2 :(得分:0)

当使用用户输入的信息生成页面的某些元素时,可能会发生XSS。

请看下面的代码:

<input type="checkbox" value="<?php echo $variableContainingUserInput; ?>" />

如果您的用户输入以下字符串:

" /> <script> window.location = "maliciouswebsite.com"; </script>

生成的HTML将如下所示:

<input type="checkbox" value="" /> <script> window.location = "maliciouswebsite.com"; </script>" />

事实上,这会将用户重定向到相关的恶意网站。

简而言之,如果用户提交的任何内容最终会在您网站的任何页面上显示,则可能会有危险。

Here是关于SO的类似问题。

答案 3 :(得分:0)

在防止XSS方面有很多事情要做。这应该涵盖脚本端的大部分内容以及如果您有敏感信息,您应该使用来自Verisign等受信任来源的 SSL证书或投保人。您可以获得128或256位证书,具体取决于您要存储的内容。这只是脚本,您还必须确保使用正确的数据库函数来安全地存储数据。

另外,当你有机会覆盖你所要求的大部分内容时,请检查一下: https://www.owasp.org/index.php/PHP_Security_Cheat_Sheet

如果您需要有关如何保护输入字段的提示,请在 SSL证书之上进行操作:

防止跨站点脚本攻击

@ref:http://www.sitepoint.com/php-security-cross-site-scripting-attacks-xss/

您也可以使用表单令牌

<?php

$token = md5(time());

$fp = fopen('./tokens.txt', 'a');
fwrite($fp, "$token\n");
fclose($fp);

?>

<form method="POST">
<input type="hidden" name="token" value="<?php echo $token; ?>" />
<input type="text" name="message"><br />

http://phpsec.org/projects/guide/2.html

完成所有操作后,就会有数据库存储端。不要使用mysql_ *函数,而是使用PDO或Prepared Statements。