可能重複: How to include a PHP variable inside a mysql insert statement如何使用此功能
如何使用這個功能來清理這是一個從一個URL中提取的變量?假設我有一個$id
變量,它是從「www.mydomain.com/single-page?id=534」中提取的,我希望在將它用於MySQL select語句之前使其變得安全。
<?php
class SecureSqlInjection
{
function specificData($val)
{
$val = htmlspecialchars(stripslashes(trim($val)));
$val = str_ireplace("script", "blocked", $val);
$val = mysql_escape_string($val);
return $val;
}
function secureSuperGlobalGET(&$value, $key)
{
if(!is_array($_GET[$key]))
{
$_GET[$key] = htmlspecialchars(stripslashes($_GET[$key]));
$_GET[$key] = str_ireplace("script", "blocked", $_GET[$key]);
$_GET[$key] = mysql_real_escape_string($_GET[$key]);
}
else
{
$c=0;
foreach($_GET[$key] as $val)
{
$_GET[$key][$c] = mysql_real_escape_string($_GET[$key][$c]);
$c++;
}
}
return $_GET[$key];
}
function secureSuperGlobalPOST(&$value, $key)
{
if(!is_array($_POST[$key]))
{
$_POST[$key] = htmlspecialchars(stripslashes($_POST[$key]));
$_POST[$key] = str_ireplace("script", "blocked", $_POST[$key]);
$_POST[$key] = mysql_real_escape_string($_POST[$key]);
}
else
{
$c=0;
foreach($_POST[$key] as $val)
{
$_POST[$key][$c] = mysql_real_escape_string($_POST[$key][$c]);
$c++;
}
}
return $_POST[$key];
}
function secureGlobals()
{
array_walk($_GET, array($this, 'secureSuperGlobalGET'));
array_walk($_POST, array($this, 'secureSuperGlobalPOST'));
}
}
?>
呃...使用超級全球變現爲你自己的數據... – Tibor
你的問題到底是什麼? [所以]是**不**代碼審查工具。你有什麼錯誤嗎? – Lix