使用`<textarea>`来防止脚本</textarea>

时间:2009-07-14 00:37:19

标签: php security textarea xss

嗯。而不是“defanging”输入或使用某种正则表达式来删除标签,将用户资料转储到<textarea>有多安全?

例如,假设有一个PHP页面执行以下操作:

echo '<textarea>';
echo $_GET['whuh_you_say'] ;
echo '</textarea>';

通常,这很容易受到xss攻击,但在textarea中,所有脚本标记都会显示为<script>,并且不会被执行。

这不安全吗?

5 个答案:

答案 0 :(得分:16)

</textarea>
  <script type="text/javascript">
    alert("this safe...");
    /* load malicious c0dez! */
  </script>
<textarea>

答案 1 :(得分:1)

strip_tags(string);

很精彩!诚实!

答案 2 :(得分:1)

如果您的用户不应该使用任何HTML标记(如果您提出此textarea解决方案,就是这种情况),只需运行htmlspecialchars()htmlentities()即可完成它。保证安全。

答案 3 :(得分:0)

这谈到了在google文档中发现的textarea中的XSS漏洞(我觉得帖子有点旧 - 所以google现在可能已经确定了它),但它解释了textareas如何被用作攻击媒介。

ha.ckers.org discussing google docs textarea exploit

答案 4 :(得分:-2)

足够基础:

sanitized = str_replace("<", "&lt;", $_GET['whuh_you_say']);
sanitized = str_replace(">", "&gt;", sanitized);