PHP XSS 问题/说明

标签 php xss

之前有人问过这个问题,但我需要 100% 清楚这个问题,因为正确处理对我来说非常重要。

情况:网站上的消息系统。用户在文本框中输入一条消息,他们提交表单并将其输入到数据库中。然后可以从数据库中调用此数据并在 <span> 中显示标记给另一个用户。

我需要采取什么安全程序来防止这些数据被恶意使用?我已经使用 mysql_real_escape_string 来停止任何注入(inject),strip_tags 似乎很有用,但我听说过很多其他名称。考虑到它仅显示在 <span> 中,我需要使用什么来保护此数据?标签?

谢谢。

最佳答案

误解是想对输入进行转义,这是错误的。您必须过滤输出(数据库也是一个输出)。

表示提交表单时,使用mysql_real_escape_string()向数据库发送(输出)数据,使用htmlspecialchars()输出内容屏幕上。同样的原则也适用于正则表达式,您可以在其中使用 preg_quote() 等。

无论数据来自何处,您都必须在发送数据的目的地上下文中对其进行转义。

所以为了防止XSS攻击,必须使用htmlspecialchars()/htmlentities()mysql_real_escape_string 与XSS无关(但在向数据库发送数据时仍然必须使用它)。

关于PHP XSS 问题/说明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7286267/

相关文章:

php - 无法修复 Laravel 迁移中的 PDOException::(“could not find driver” )

php - 如何在我的sql中存储具有相同结构但具有不同值的对象

javascript - 允许 Javascript - 防止 XSS? (独特的场景)

java - Xss 过滤器正则表达式捕获错误的单词

html - 没有 &lt;meta chartset=<<"any-encoding">>/> 标签的安全漏洞?

php - 另一个 "inconsistent mappings"、 "owning side field does not exist"学说问题

javascript - 更新购物车后 WooCommerce global.js 不起作用

javascript - 是否可以清理 Javascript 代码?

php - PHP 脚本中的 XSS 漏洞

php - 为什么 PHP 一次发送所有内容?