Javascript 如何保护JSON响应?

Javascript 如何保护JSON响应?,javascript,php,jquery,json,codeigniter,Javascript,Php,Jquery,Json,Codeigniter,我目前正在开发一个在线考试web应用程序。学生可以在线参加考试的地方。教师可以添加考试问题,并为学生检索。我正在使用Codeigniter PHP框架 对于问题表,我大致如下所示: 为了检索它,我使用一个使用GET方法的ajax调用,响应将是JSON。对于后端,我从该表中选择并使用 json_encode() 代码如下: 客户端 function getQuestions() { $.ajax({ url: "exams/getQuestions",

我目前正在开发一个在线考试web应用程序。学生可以在线参加考试的地方。教师可以添加考试问题,并为学生检索。我正在使用Codeigniter PHP框架

对于问题表,我大致如下所示:

为了检索它,我使用一个使用GET方法的ajax调用,响应将是JSON。对于后端,我从该表中选择并使用

json_encode()
代码如下:

客户端

function getQuestions() {
    $.ajax({
        url: "exams/getQuestions",
        method: "GET",
        dataType: "json",
        success: function(data) {
            $("#lblA").html(a[0]);
            console.log(data)
        }
    });
}
控制器

public function getQuestions()
{
    $results = $this->ExamModel->getQuestions();
    //print_r($results);

    echo json_encode($results);
}
型号

  public function getQuestions(){
    $this->db->select("*");
    $this->db->from("question");
    $query = $this->db->get();

    if ($query->num_rows() > 0) return $query->result();
    else return false;    
  }
我得到的回应是:

正如您所看到的,因为在问题表中,我有一个右侧的列,它也会显示出来。我认为这是一种安全风险,因为这样学生就会知道答案。所以我的问题是,我如何阻止学生们知道它

我想在问题表中再创建一列作为答案,并有右答案列,但在检索数据时,我没有选择右答案列。我还不确定,所以我感谢所有的帮助


谢谢。

只需修改您的
选择
并选择您需要的字段:

$this->db->select("id, question, ans_a, ans_b, ans_c");

在这种情况下,没有人会看到任何其他字段,因为它们未被选中,因此不会传递给客户端。

只需修改您的
选择并选择您需要的字段:

$this->db->select("id, question, ans_a, ans_b, ans_c");

在这种情况下,没有人会看到任何其他字段,因为它们未被选中,因此不会传递给客户端。

只需获取除答案以外的所有列:

  $this->db->select("ans_a,ans_b,ans_c,id,question");

只需获取除答案外的所有列:

  $this->db->select("ans_a,ans_b,ans_c,id,question");

如果你不想让他们知道,就不要发送。制作一段不包含此信息的Json。只需从响应中删除正确答案。如果您不想让他们知道,请不要发送。制作一段Json来排除这些信息。只需从响应中删除正确答案。