好吧,我想知道什么时候应该清理我的代码,什么时候将它添加到数据库中或者什么时候将它显示在我的网页上或两者兼而有之?
我问这个问题是因为我在将代码存储到数据库之前对其进行了清理,但是当它显示给用户时我从不清理。
这是一个示例,说明我如何在将代码存储到数据库之前对其进行清理。
$title = mysqli_real_escape_string($mysqli, $purifier->purify(strip_tags($_POST['title'])));
$content = mysqli_real_escape_string($mysqli, $purifier->purify($_POST['content']));
最佳答案
您(可能)在这里谈论的是不同的威胁:
- 您需要清理 插入数据库的数据以避免SQL injections .
- 您还需要注意显示给用户的数据,因为它可能包含恶意脚本(如果它是由其他用户提交的)。请参阅维基百科的条目 cross-site scripting (又名 XSS)
对您的数据库有害的东西不一定对用户有害(反之亦然)。您必须相应地处理这两种威胁。
在你的例子中:
- 使用mysqli::real_escape_string () 关于插入数据库的数据(清理)
您可能希望在数据插入之前使用净化器 - 只需确保在用户获取它时它已“净化”。
您可能需要使用 striplashes () 如果 magic_quotes
打开
关于php - 在将 PHP 和 MySQL 代码存储到数据库之前或在显示时何时清理它们?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3327974/