jquery オートコンプリートを実装するための助けを求めていたところ、次のコードは sql インジェクションの影響を受けやすいと誰かが言いました。プログラミングが初めてだったので、どのように/なぜなのかわかりませんでした。
誰かがより詳細に説明し、セキュリティ リスクを回避するための具体的な手順を説明できますか?
ありがとう
JS:
$( "#filter" ).autocomplete({
source: function(request, response) {
$.ajax({
url: "http://rickymason.net/blurb/main/search/",
data: { term: $("#filter").val()},
dataType: "json",
type: "POST",
success: function(data){
var resp = $.map(data,function(obj){
return obj.tag;
});
response(resp);
}
});
},
minLength: 2
});
コントローラ:
public function search()
{
$term = $this->input->post('term', TRUE);
$this->thread_model->autocomplete($term);
}
モデル:
public function autocomplete($term)
{
$query = $this->db->query("SELECT tag
FROM filter_thread ft
INNER JOIN filter f
ON ft.filter_id = f.filter_id
WHERE f.tag LIKE '%".$term."%'
GROUP BY tag");
echo json_encode($query->result_array());
}