使用者工具

網站工具


webdesign:head_rush_ajax_5

差異處

這裏顯示兩個版本的差異處。

連向這個比對檢視

webdesign:head_rush_ajax_5 [2007/03/04 01:15] – 建立 wenpeiwebdesign:head_rush_ajax_5 [2007/03/04 14:04] (目前版本) – wenpei
行 106: 行 106:
   Content-Length: 121   Content-Length: 121
 </code> </code>
 +
 +==== SQL injection ====
 +在表單中輸入
 +  ' || 'a'='a'
 +造成
 +  SELECT * FROM hraj_breakneck WHERE phone=' 「' || 'a'='a」 '
 +  SELECT * FROM hraj_breakneck WHERE phone='' || 'a'='a'
 +  SELECT * FROM hraj_breakneck WHERE phone='' OR 'a'='a'
 +其中「phone=''」永遠為 false,但「'a'='a'」永遠為 true
 +
 +=== 使用 JavaScript 檢查 ===
 +檢查是否有不應該出現的字元經過表單進入 SQL 查詢式中。
 +
 +但惡意使用者可以透過自行建立的網頁傳送 POST 進 PHP,完全不會經過 JavaScript 檢查。
 +
 +=== 強化 PHP ===
 +http://tw.php.net/manual/tw/function.mysql-real-escape-string.php
 +
 +mysql_real_escape_string -- Escapes special characters in a string for use in a SQL statement
 +  $phone = mysql_real_escape_string($phone);
 +
 +若確定查詢的資料永遠只需要輸出一筆,則使用
 +  $row = mysql_fetch_array($queryResult);
 +取代
 +  while ($row = mysql_fetch_array($queryResult)) { ... }
webdesign/head_rush_ajax_5.1172942123.txt.gz · 上一次變更: (外部編輯)