मेरे पास php में एक वेबसाइट है जिसमें सामग्री को टेम्पलेट में एम्बेड करने के लिए() शामिल है। लोड करने के लिए पृष्ठ को पैरामीटर में दिया गया है, मैं पैरामीटर के अंत में ".php" जोड़ता हूं और उस पृष्ठ को शामिल करता हूं। मुझे XSS या अन्य सामान से बचने के लिए कुछ सुरक्षा जांच करने की आवश्यकता है (MySQL इंजेक्शन नहीं क्योंकि हमारे पास डेटाबेस नहीं है)। मैं जो आया हूं वह निम्नलिखित है।
$page = $_GET['page'];
if(!strpos(strtolower($page), 'http') || !strpos($page, '/') ||
!strpos($page, '\\') || !strpos($page, '..')) {
//append ".php" to $page and include the page
क्या कोई अन्य चीज है जो मैं अपने इनपुट को और अधिक स्वच्छ करने के लिए कर सकता हूं?
स्ट्रॉप्स() जैसे परिणाम की जांच न करें - यह स्ट्रिंग की शुरुआत में है, तो यह शून्य वापस आ जाएगा, जो झूठी –
@Tom का मूल्यांकन करेगा, Acceppted समाधान देता है मैं भी उससे बचता हूं, वैसे भी धन्यवाद, मुझे भविष्य के कोड के लिए आपकी सलाह याद रहेगी। –
यह भी देखें: http://stackoverflow.com/a/15825812/59087 –