-
mysql_real_escape_string
插入数据库时使用
-
htmlentities()
在将数据输出到网页时使用
-
htmlspecialchars()
何时使用?
-
strip_tags()
何时使用?
-
addslashes()
何时使用?
htmlspecialchars() 使用的时候?
htmlspecialchars
与 大致相同。区别:字符编码。htmlentities
两者都对控制字符(如 、 等)进行编码,用于开始标记等。 还编码其他语言的字符,如元音变音符,欧元符号等。如果您的网站是 UTF,请使用 ,否则使用 。<
>
&
htmlentities
htmlspecialchars()
htmlentities()
strip_tags() 何时使用?
htmlspecialchars
/ entities
对特殊字符进行编码,以便显示它们但不进行解释。 删除它们。strip_tags
在实践中,这取决于你需要做什么。
例如:您已经编写了一个论坛,并为用户提供了一个文本字段,以便他们可以发布内容。恶意的只是尝试:
pictures of <a href="javascript:void(window.setInterval(function () {window.open('http://evil.example');}, 1000));">kittens</a> here
如果您不执行任何操作,则将显示该链接,并且单击该链接的受害者将获得大量弹出窗口。
如果你的 htmlentity/htmlspecialchary 你的输出,文本将按原样存在。如果您strip_tag它,它只会删除标签并显示它:
pictures of kittens here
有时你可能想要一个混合物,在那里留下一些标签,比如(可以在那里留下某些标签)。这也是不安全的,所以最好使用一些完整的库来对抗XSS。<b>
strip_tags
加号
引用旧版本的PHP手册:
返回一个字符串,在数据库查询等中需要加引号的字符之前带有反斜杠。这些字符是单引号 (')、双引号 ()、反斜杠 () 和 NUL(空字节)。
addslashes() 的一个示例是当您将数据输入数据库时。例如,要将名称 O'reilly 插入到数据库中,您需要对其进行转义。强烈建议使用特定于DBMS的转义函数(例如,mySQL的mysqli_real_escape_string()或PostgreSQL的pg_escape_string()),但是如果您使用的DBMS没有转义函数,并且DBMS使用\来转义特殊字符,则可以使用此函数。
当前版本的措辞不同。