使用者工具

網站工具


webdesign:head_rush_ajax_5

差異處

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

連向這個比對檢視

下次修改
前次修改
webdesign:head_rush_ajax_5 [2007/03/04 01:15]
wenpei 建立
webdesign: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 · 上一次變更: 2007/03/04 14:04 (外部編輯)