【问题标题】:Would this sanitize function save from most of attacks?这种清理功能是否可以避免大多数攻击?
【发布时间】:2012-04-25 10:52:41
【问题描述】:

此功能是否可以让我的应用免于大部分错误输入? 用户输入只能是带有数字的文本。

function sanitize($data){
    $data = strip_tags($data);
    $data = htmlspecialchars($data,ENT_QUOTES);
    $data = filter_var($data,FILTER_SANITIZE_STRING);
    $data = filter_var($data,FILTER_SANITIZE_STRING,FILTER_FLAG_STRIP_LOW);
    return $data;           
}

附:需要任何其他信息吗?

【问题讨论】:

  • 当你用“sql-injection”标记这个问题时,你应该根据你的数据库连接使用适当的函数;例如mysql_real_escape_string 或使用准备好的语句。如果您只想保留字母数字字符,您可能可以使用正则表达式去除任何其他字符。
  • 好的。谢谢你。我去看看。

标签: php security xss sql-injection csrf


【解决方案1】:

没有所谓的“只是清理”数据。您必须针对特定用例适当地清理数据,无论是发送到数据库、用作文件名还是回显给用户,等等。您清理数据(句号)的尝试注定要失败,因为没有清理数据(句号)之类的东西。这甚至没有意义。 “清理”数据的概念只有在与您希望清理数据的上下文配对时才有意义。

特别是,如果您打算清理数据以进入数据库(不清楚 - 您的问题没有特别提到数据库,但它具有“sql-injection”标签),那么您很可能需要有关您正在使用的数据库连接以正确执行此操作。

【讨论】:

  • 好吧,如果它不是完全重复的,我会赞成这个相当理智的答案
  • 嗯,这主要是为了插入数据库。
猜你喜欢
  • 2010-12-07
  • 2021-02-22
  • 1970-01-01
  • 1970-01-01
  • 2011-09-15
  • 2016-06-20
  • 1970-01-01
  • 2015-11-30
  • 1970-01-01
相关资源
最近更新 更多