........
依要求填入 mysql 語法。
<?php $dbhost = 'localhost:3306'; $dbuser = 'root'; $dbpass = '123qwe'; $conn = mysql_connect($dbhost, $dbuser, $dbpass) or mysql_error().PHP_EOL; $sql = "select ........ ;" ; mysql_select_db('dbi'); $retval = mysql_query( $sql, $conn ); while($row = mysql_fetch_array($retval, MYSQL_NUM)) { echo "{$row[0]}\t{$row[1]}"; } ?>
$_GET['plang']
由網址加問號取得內容,如以下範例變數 plang=python。
http://kvm6.deyu.wang/sqlinj1.php?plang='python'
$_GET['plang']
,使得其可以進行 sql injection。
$_GET['plang']
以單引號括起來,以避免 sql injection。
preg_match
函數限制變數 $_GET['plang']
只能非空白字元,否則印出 "Not Match"。
preg_match
函數限制變數 $_GET['plang']
必須是小寫英文字母,否則印出 "Not Match"。
preg_match
函數限制變數 $_GET['plang']
必須是 1 到 6 個小寫英文字母,否則印出 "Not Match"。
$_GET['plang']
中的單引號、雙引號、倒斜線等符號,加上倒斜線跳脫其功能,並使用 echo 在 mysql 查詢命令之前印出變數 $_GET['plang']
內容。