gpt4 book ai didi

php - 如何防止属性中的XSS

转载 作者:太空狗 更新时间:2023-10-29 15:09:15 25 4
gpt4 key购买 nike

所以我有一个站点,用户可以在其中使用他们选择的用户名进行注册,并且可以提交大块文本并添加评论。目前,为了避免 XSS,我在输入到数据库的数据上使用 strip_tags 并且我只输出正文中的数据,而不是属性中的数据。我目前正在对网站进行更改,其中之一是制作一个用户页面,当有人点击用户名(链接)时加载该页面。这看起来像:

<a href="example.com/user/<?php echo $username; ?>">...</a>

我担心有人可以为 $username 变量插入

<a href="example.com/user/user" onClick="javascript:alert('XSS');">...</a>

我已经阅读了很多关于此的其他 SO 帖子,但没有一个给出非黑即白的答案。如果我在输出的所有文本上使用以下内容,除了在输入上使用 strip_tags:

echo htmlspecialchars($string, ENT_QUOTES, 'UTF-8');

这是否足以阻止所有 XSS 攻击,包括那些使用内联 javascript: 语法的攻击?

此外,有没有什么方法可以删除实际的 html 标签而不删除诸如“我 > 你”之类的内容?

谢谢!

最佳答案

根据 PHP5 认证学习指南,有两条关于安全的黄金法则:

  1. 过滤输入
  2. 转义输出

目前你只看到了问题的一方面。

但我更喜欢 htmlentities。

关于php - 如何防止属性中的XSS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7060587/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com