0
我有一個關於涉及搜索表單用PHP/MySQL的擺脫MySQL的搜索字符串PHP
考慮以下最佳實踐的問題:
- 一個搜索表單搜索書名
- 這個jQuery/AJAX請求以「自動建議」標題
- 需要逃脫以及如何?
它連接到數據庫MySQL的用戶只有此刻的SELECT
特權,但我可能會添加在將來INSERT
特權(因此注射潛力)。
搜索表單很簡單,如這樣的:
<form id="search" method="GET" action="/search/">
<input type="text" value="" id="s" name="s" />
</form>
的形式通過GET發送到search.php?s=Search Query
。一旦出現,PHP文件是類似如下:
<?php
$s = $_GET['s']; // the search request
$search = new Search($s); // creates new search object and sends the $s query
echo $search->output; // returns results
?>
我的搜索類有以下幾點:
class Search {
// Database stuff omitted
$stmt->bindParam(':search', $this->query, PDO::PARAM_STR)
$stmt->execute;
$res = $stmt->fetchAll(PDO::FETCH_ASSOC);
$this->output = $res;
}
我的SQL查詢是這樣的:SELECT booktitle FROM books WHERE booktitle LIKE '%:search%'
我可能會得到什麼樣的問題進?你有什麼需要逃避和在哪裏的建議?你看到我的設置有潛在的問題嗎?諸如sql注入等問題?
感謝您的回覆,你的想法。 – 2013-04-07 17:24:20