使用PHP了解黑名单和白名单

2022-03-22 00:00:00 php preg-replace whitelist

我知道使用白名单时,它只使用该列表中的所有内容,而使用黑名单时,它使用列表中以外的所有内容。

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

我知道这样会减少除字符或数字以外的所有带空格的内容:

preg_replace( "/[^a-zA-Z0-9_]/", "", $stringToFilter );
但是,如果我不想用空格将值存储在数据库中,该怎么办呢?有没有办法做到这一点,以便出现一条错误消息呢?使用IF语句,例如.


解决方案

我知道使用白名单时,它只使用其中的所有内容 对于黑名单,它使用除 列表。

  • 白名单:审批通过的项目
  • 黑名单:未批准的项目

preg_place

您应该将preg_matchfilter_var与标志FILTER_VALIDATE_REGEXP一起使用.请参阅下面的详细信息。

但是,如果我不想用空格将值存储在数据库中,该怎么办呢?有没有办法做到这一点,以便出现一条错误消息呢?使用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语句中,就完成了。

相关文章