Wordpress Plugin Reviewer

时间:2019-07-08 作者:user2641473

我试图在wordpress上提交新插件。org和审阅者向我发送了以下关于我在这些行中的代码的消息,您能告诉我我可以添加什么替代代码以使审阅者批准我的插件审阅者评论>>“当您在插件中包含POST/GET/REQUEST/FILE调用时,对其进行清理、验证和转义非常重要。这里的目标是防止用户意外地通过系统发送垃圾数据,并保护他们免受潜在的安全问题。”

我的代码是

// set options
public function set_options() {

  $nonce = \'kfw_options_nonce\'. $this->unique;

  if( isset( $_POST[$nonce] ) && wp_verify_nonce( $_POST[$nonce], \'kfw_options_nonce\' ) ) {

    $request    = ( ! empty( $_POST[$this->unique] ) ) ? $_POST[$this->unique] : array();
    $transient  = ( ! empty( $_POST[\'kfw_transient\'] ) ) ? $_POST[\'kfw_transient\'] : array();
    $section_id = ( ! empty( $transient[\'section\'] ) ) ? $transient[\'section\'] : \'\';

    // import data
    if( ! empty( $transient[\'kfw_import_data\'] ) ) {

      $import_data = json_decode( stripslashes( trim( $transient[\'kfw_import_data\'] ) ), true );
      $request = ( is_array( $import_data ) ) ? $import_data : array();

      $this->notice = esc_html__( \'Success. Imported backup options.\', \'kfw\' );

    } else if( ! empty( $transient[\'reset\'] ) ) {

      foreach( $this->pre_fields as $field ) {
        if( ! empty( $field[\'id\'] ) ) {
          $request[$field[\'id\']] = $this->get_default( $field );
        }
      }

      $this->notice = esc_html__( \'Default options restored.\', \'kfw\' );

    } else if( ! empty( $transient[\'reset_section\'] ) && ! empty( $section_id ) ) {

      if( ! empty( $this->pre_sections[$section_id-1][\'fields\'] ) ) {

        foreach( $this->pre_sections[$section_id-1][\'fields\'] as $field ) {
          if( ! empty( $field[\'id\'] ) ) {
            $request[$field[\'id\']] = $this->get_default( $field );
          }
        }

      }

      $this->notice = esc_html__( \'Default options restored for only this section.\', \'kfw\' );

    }

1 个回复
SO网友:Awais

您可以使用WordPress提供的清理和转义功能

例如,您可能需要执行以下操作:

$sanitize_value = sanitize_text_field( $_POST[$this->unique] );
Here 是您需要的细节。https://codex.wordpress.org/Validating_Sanitizing_and_Escaping_User_Data

相关推荐

Testing Plugins for Multisite

我最近发布了一个WordPress插件,它在单个站点上非常有效。我被告知该插件在多站点安装上不能正常工作,我理解其中的一些原因。我已经更新了代码,现在需要一种方法来测试更新后的代码,然后才能转到实时客户的多站点安装。我有一个用于测试的WordPress安装程序的单站点安装,但需要在多站点安装上进行测试。根据我所能找到的唯一方法是在网络上至少有两个站点来安装整个多站点安装,以测试我的插件。设置WordPress的整个多站点安装是插件开发人员的唯一/首选方式,还是有更快的测试环境可用。