gpt4 book ai didi

php - 避免意外的双 htmlspecialchars 编码?

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

我目前正在加强我网站的安全性,我正在努力确保从 PHP 传递到 HTML 的每个值都经过正确编码。

目前,为模板赋值会对其进行编码,但是网站的某些部分是旧的并且不使用模板。

我更改了用于输出 HTML 的函数的工作方式以对所有值进行编码。这对于覆盖所有旧页面非常有效,但现在会导致模板值双重编码。

我改变了我用来做的编码函数:

$textToEncode = htmlspecialchars_decode($szText);
return htmlspecialchars($textToEncode, ENT_COMPAT, 'ISO-8859-1');

据我所知,这是有效的。通过首先对其进行解码,它将始终确保它不会进行双重编码,而且我想不出解码未编码的字符串会导致问题的任何原因。这是一个好的解决方案吗?

最佳答案

如果您查看手册,您会发现您正在寻找的是函数的最后一个参数 - $double_encode = false ,默认情况下为 true:

string $string [, int $flags = ENT_COMPAT | ENT_HTML401 [, string $encoding = 'UTF-8' [, bool $double_encode = true ]]] 

因此:

htmlspecialchars($textToEncode, ENT_COMPAT, 'ISO-8859-1', false);

关于php - 避免意外的双 htmlspecialchars 编码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16646577/

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