保护进行ajax调用时运行的外部php文件

时间:2019-07-04 20:34:59

标签: javascript ajax wordpress security

我正在使用ajax保存表单。 (表单是公开的,因此任何未登录的用户都可以保存它)。 我正在使用模板刀片。那里我有一个表格。单击提交按钮后,我将表格序列化并将其发送到php throw ajax。

问题是我使用正确吗?我的意思是,该php文件应保存在哪里(在哪个目录中)。 第二个问题是我如何保护此php文件,我的意思是只有从www.example.com才能调用它,而不能从其他域调用它。 我已经在wordpress中阅读了有关admin-ajax的信息,但是我没有使用它。 请给我一些建议。

JavaScript:

  $.ajax({
    type: 'POST',
    url: '/admin-inventory/category/AddCategory.php',
    data: 'category_name=' + name,
    success: function (response) {
      var result = JSON.parse(response);
      }
    },
    error: function (response) {
      console.log(response.error);
  });

PHP文件:

 <?php      
include "../../wp-load.php";

$wp_userid = get_current_user_id();
if(!$wp_userid) die(json_encode(array("error" => "Unauthorized access"), JSON_UNESCAPED_UNICODE));

if($_SERVER['REQUEST_METHOD'] === 'POST') {     
    if(!$_POST['category_name']) die(json_encode(array("error" => "No name"), JSON_UNESCAPED_UNICODE));         

    $data = array(
        'name' => $_POST['category_name']
    );
    $data_pattern = array('%s');

    $wpdb->insert("inventory_category", $data, $data_pattern);
    if(!empty($wpdb->last_error)) die(json_encode(array("error" => $wpdb->last_error), JSON_UNESCAPED_UNICODE));        
    die(json_encode(array("action" => "Saved"), JSON_UNESCAPED_UNICODE));   
}

?>

0 个答案:

没有答案