【问题标题】:Understanding Blacklists and Whitelists with PHP使用 PHP 了解黑名单和白名单
【发布时间】:2012-04-22 06:24:46
【问题描述】:

我了解,使用白名单只会使用该列表中的所有内容,而使用黑名单会使用除列表中的内容之外的所有内容。

但是在那之后会发生什么?假设您使用白名单 - 如果输入的值包含不在白名单中的内容,您能否阻止提交输入?

我知道这样的事情会减少所有不是带有空格的字符或数字的内容:

preg_replace( "/[^a-zA-Z0-9_]/", "", $stringToFilter );

但是,如果我不希望将值存储在带有空格的数据库中。有没有办法做到这一点,以便出现错误消息?例如使用 if 语句...

【问题讨论】:

  • 你能解释一下你的问题吗?
  • 从白名单到空白的惊人转变...

标签: php preg-replace whitelist


【解决方案1】:

我了解使用白名单只会使用其中的所有内容 该列表和黑名单它使用所有内容,但 列表。

  • 白名单:已批准的项目
  • 黑名单:批准的项目

preg_replace

您应该使用带有 FILTER_VALIDATE_REGEXP 标志的 preg_matchfilter_var...

但是,如果我不希望将值存储在带有空格的数据库中。有没有办法做到这一点,以便出现错误消息?例如使用 if 语句...

你在谈论验证,所以你会看:php.net/filter.filters.validate:

// false    
var_dump( !filter_var('string with spaces', FILTER_VALIDATE_REGEXP, array('options' => array('regexp' => '/[\s]+/i'))) );

// true
var_dump( !filter_var('string_with_no_spaces', FILTER_VALIDATE_REGEXP, array('options' => array('regexp' => '/[\s]+/i'))) );

将以上内容包装在 if 语句中,就完成了。

【讨论】:

    猜你喜欢
    • 2020-04-14
    • 1970-01-01
    • 2015-06-22
    • 1970-01-01
    • 2015-01-03
    • 1970-01-01
    • 2010-11-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多