Wordpress数据属性安全权限值

时间:2016-11-10 15:57:51

标签: jquery ajax wordpress security

我的客户端有一个html表单,用ajax向我的服务器发送数据。问题是任何人都可以更改输入值(右键单击"检查元素"使用chrome),数据获取服务器端可能是错误的。

例:
1.我的HTML表单
2.我用ajax发送数据到我的服务器 3.使用PHP我从客户端获取数据

<form>
<input type="hidden" name="user_id" value="<?php echo $user_id; ?>">
<input id="send" type="submit" value="send">
</form>


$('#send').on('click', function(){
  var user_id = jQuery('input[name="user_id"]').val();  
  jQuery.ajax({
          type: 'POST',
          url: 'wp-admin/admin-ajax.php',
          data:{
          'action':'my_form',
          'user_id': user_id,
          },
           success:function(data){
            console.log(data); 
           }
   });
});

function my_form(){
    $user_id = $_REQUEST['user_id'];
}

任何人都可以更改隐藏的&#34; user_id&#34;字段并将值设置为123或4856。在$ user_id服务器端获取的数据可能是错误的。 那么我该怎么做才能确保来自客户端的数据是正确的?

p.s:对不起我的英文

1 个答案:

答案 0 :(得分:0)

如果它是登录用户ID,那么不要信任客户端值而不是在PHP代码中使用以下

$current_user = wp_get_current_user();
$userid = $current_user->ID;

https://codex.wordpress.org/Function_Reference/wp_get_current_user