php - php 中的安全首选项、php 函数来清理输入

标签 php mysql security

我有以下函数可以清理用户或网址的输入:

   function SanitizeString($var)
   {
       $var=stripslashes($var);
       $var=htmlentities($var, ENT_QUOTES, 'UTF-8');
       $var=strip_tags($var);
       return $var;
   }

我不知道除了这个php函数之外是否还需要使用该函数:

mysql_real_escape_string()..

我也不知道我是否采取了所有预防措施来清理该输入

我也有剥离标签的问题..因为我使用的是tiny_MCE..并且不剥离它们很重要..

在将 html 字符送入数据库之前,如何将其状态作为 html 字符返回?

最佳答案

无论如何,先验地清理输入都是错误的。剥离标签与数据库有什么关系?从什么时候开始恶意脚本在数据库中运行? 过度谨慎是一件好事,除非你这样做时没有逻辑。

仅根据“可疑”内容需要去往的位置进行清理。

数据库?然后对数据库进行转义,避免SQL注入(inject)。使用 mysql_real_escape_string() 或参数化查询,然后就可以了。

HTML 页面?清理你的 html 以避免 XSS 和其他讨厌的事情。使用 htmlentities() 或其他更复杂的解决方案,但请在输出之前执行此操作。

如果你在数据库中保存一个 html 页面,然后去掉所有标签(顺便说一句,strip_tags() 做得很糟糕,在 htmlentities() 之后调用它不是最好的事情)怎么办?如果您稍后需要返回 html 该怎么办?试想一下,使用<script>对数据库有什么危害?标签或恶意软件的链接?难道它们只有在打印在页面上时才有害吗?

要解码 htmlentities() 形式,只需使用.. html_entity_decode()

关于php - php 中的安全首选项、php 函数来清理输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7876129/

相关文章:

javascript - textarea名称,id相同——

javascript - 迭代并从 JSON 获取某些索引的唯一值

php - 比通常的 phpagi 运行时间更长

c# - IDX10632 : SymmetricSecurityKey. GetKeyedHashAlgorithm( 'HS512') 在使用 HS512 ALGO 验证 JWT 时抛出异常

php - 在 Woocommerce 购物车和结帐日期时间显示中启用用户本地时间

PHP 不更新 MySQL 表

php - 从 PHP 对象获取 cURL 命令

java - JSON异常 : No value for id

android - 限制/保护特定移动应用程序使用的 Google Appengine servlet(REST 服务提供商)

Java EE 角色管理系统 - 它们存在吗?