如果没有使用htmlspecialchars,请使用它?

时间:2017-01-11 07:27:39

标签: php database security htmlspecialchars html-escape-characters

我没有遵循

的规则

最佳实践:始终使用htmlentities在浏览器中显示数据。不要使用htmlentities来存储数据。

我已经使用htmlentities存储数据,所以每次显示时都不应该使用htmlentities。但是我看到如果有人可以访问我的数据库并编写脚本标记,他可以在所有用户数据中运行脚本。我没有&# 39; t遵循规则,因为我认为每次显示数据时使用htmlentities都会很慢。

那么有没有办法解决这个问题?我认为解决方案可以使用htmlspecialchars如果它没有被使用。我怎么能这样做?我应该删除所有数据并再次写入所有使用htmlentities的脚本仅在浏览器中显示时?

更新

我发现html_entity_decode()如下所示:

function escape($string){

$string = html_entity_decode($string,null,'UTF-8');
return htmlspecialchars($string);
}

这是最好的方法。如果我这样做,我会100%能够反转所有并逃脱,如果没有逃脱?

0 个答案:

没有答案