मैं सभी पोस्ट को प्रभावी रूप से आसानी से आसानी से साफ करने और एक ही फ़ंक्शन के साथ चर प्राप्त करने के तरीके के साथ आने का प्रयास कर रहा हूं। यहाँ समारोह में ही है:
//clean the user's input
function cleanInput($value, $link = '')
{
//if the variable is an array, recurse into it
if(is_array($value))
{
//for each element in the array...
foreach($value as $key => $val)
{
//...clean the content of each variable in the array
$value[$key] = cleanInput($val);
}
//return clean array
return $value;
}
else
{
return mysql_real_escape_string(strip_tags(trim($value)), $link);
}
}
और यहाँ कोड है कि यह कहेंगे है:
//This stops SQL Injection in POST vars
foreach ($_POST as $key => $value)
{
$_POST[$key] = cleanInput($value, $link);
}
//This stops SQL Injection in GET vars
foreach ($_GET as $key => $value)
{
$_GET[$key] = cleanInput($value, $link);
}
मेरे लिए यह लगता है जैसे कि यह काम करना चाहिए। लेकिन किसी कारण से यह मेरे पास किसी रूप में मौजूद कुछ चेकबॉक्स से सरणी नहीं लौटाएगा। वे खाली बाहर आते रहते हैं।
मैंने उपरोक्त फ़ंक्शन के बिना अपने कोड का परीक्षण किया है और यह ठीक काम करता है, मैं बस उसमें कुछ अतिरिक्त सुरक्षा चाहता हूं।
धन्यवाद!
आपको प्रत्येक संदर्भ के लिए सबकुछ स्वच्छ करने की कोशिश से बचना चाहिए। यह केवल आपके एप्लिकेशन को बाधित करता है और जब आप खोए कार्यक्षमता को फिर से बनाना चाहते हैं तो इसे सुरक्षित करना कठिन हो जाता है। यह एक वैध कारण है कि magic_quotes अक्षम क्यों किया गया था। http://php.net/manual/en/security.magicquotes.php कुछ ऐसा जो आप यहां एक अर्थ में पुनर्निर्माण कर रहे हैं। आपके द्वारा भेजे जा रहे एप्लिकेशन के लिए इनपुट को स्वच्छ करने की आवश्यकता है। यदि आप HTTP के माध्यम से ब्राउज़र में भेज रहे हैं, तो इसे HTTP, और HTML के लिए sanitize। यदि आप इसे एसक्यूएल डीबी में भेज रहे हैं, तो इसे एसक्यूएल के लिए sanitize। – bucabay
क्षमा करें, मेरा मतलब है बहिष्कृत: http://php.net/manual/en/security.magicquotes.php – bucabay
सहायता/सलाह के लिए धन्यवाद! ऐसा लगता है कि मुझे अपनी प्रक्रिया पर पुनर्विचार करने की जरूरत है। :-) – tscully