Passing form data on submit

时间:2017-11-14 作者:nrstx

在我的清理脚本中,在使用POST请求方法提交此数据之前,我的文本区域输入字段“contact\\u msg”有以下内容:

if($_POST[\'contact_msg\'] != \'\'){
      $contact_message = sanitize_textarea_field($_POST[\'contact_msg\']);
      if(strlen($contact_message < 15)){
           $errors .= \'Please enter more information in your message.\';
           $hasError = true;
      } elseif {strlen($contact_message > 2000)) {
           $errors .= \'Please shorten your message.\';
           $hasError = true;
      }
 }
我有点绊倒了,因为我认为$_POST[\'contact_msg\'] 将被清理-仅变量,$contact_message 默认情况下,提交时传递的不是什么,因此需要我在提交时传递此输入的键/值对之前做其他事情?换句话说,你实际上是如何消毒的$_POST[\'contact_msg\']? 您是否只添加以下内容:

if($_POST[\'contact_msg\'] != \'\'){
      $contact_message = sanitize_textarea_field($_POST[\'contact_msg\']);
      if(strlen($contact_message < 15)){
           $errors .= \'Please enter more information in your message.\';
           $hasError = true;
      } elseif (strlen($contact_message > 2000)) {
           $errors .= \'Please shorten your message.\';
           $hasError = true;
      } else {
           $_POST[\'contact_msg\'] = sanitize_textarea_field($_POST[\'contact_msg\'];
      }

 }
为了实际清理正在发布的数据?

1 个回复
SO网友:jaswrks

首先检查它是否为空,然后将其类型转换为字符串值作为安全预防措施,因为它总是可以作为数组提交;e、 例如,被攻击者。然后取消闪烁、清理,并通过检查长度和任何其他要验证的内容继续。

if ( ! empty( $_POST[\'contact_msg\'] ) ){
    $contact_message = (string) $_POST[\'contact_msg\'];
    $contact_message = wp_unslash( $contact_message );
    $contact_message = sanitize_textarea_field( $contact_message );
}
Tip: 还请确保使用Nonce.

这是上面更简洁的变化。

if ( ! empty( $_POST[\'contact_msg\'] ) ){
    $contact_message = sanitize_textarea_field( wp_unslash( (string) $_POST[\'contact_msg\'] ) );
}

结束

相关推荐

wordpress admin security

我用不同的工具扫描我的网站,但它没有显示恶意脚本。但当我在管理仪表板中看到时,我在body标签下面看到了奇怪的方形符号。我试图检查管理索引文件,根索引文件,但什么都没有。有人放了这个脚本。而且,当我试图采取备份它不允许我采取。使用BackupFordPress插件。然而,所有其他的事情都在运行,但在管理方面仍然存在一些问题。如何检测和删除此项。