我最近經常做的一件事是在任務開始時檢索一些數據並存儲它在$ _SESSION ['myDataForTheTask']。
現在看起來很方便,但我不知道使用這種方法的性能,安全風險或類似情況。這是由具有更多專業知識的程序員定期完成的事情,還是更多的業餘事情?
例如:
if (!isset($_SESSION['dataentry']))
{
$query_taskinfo = "SELECT participationcode, modulearray, wavenum FROM mng_wave WHERE wave_id=" . mysql_real_escape_string($_GET['wave_id']);
$result_taskinfo = $db->query($query_taskinfo);
$row_taskinfo = $result_taskinfo->fetch_row();
$dataentry = array("pcode" => $row_taskinfo[0], "modules" => $row_taskinfo[1], "data_id" => 0, "wavenum" => $row_taskinfo[2], "prequest" => FALSE, "highlight" => array());
$_SESSION['dataentry'] = $dataentry;
}
您的SQL查詢容易受到SQL注入攻擊。例如,某人可以放置'?wave_id = wave_id',查詢將選擇所有行。 (這在DELETE,INSERT和UPDATE查詢中更糟糕。)在這種情況下,您應該編寫代碼以確保它是一個數字,最簡單的方法是intval() – 2008-09-16 22:20:44