Javascript 如何保护JSON响应?
我目前正在开发一个在线考试web应用程序。学生可以在线参加考试的地方。教师可以添加考试问题,并为学生检索。我正在使用Codeigniter PHP框架 对于问题表,我大致如下所示: 为了检索它,我使用一个使用GET方法的ajax调用,响应将是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",
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来排除这些信息。只需从响应中删除正确答案。