ग्रीटिंग्स, में फ़ाइल पथ को स्वच्छ करें, मैं अपने छोटे प्रोग्राम को सुरक्षित बनाने की उम्मीद कर रहा हूं ताकि संभावित दुर्भावनापूर्ण उपयोगकर्ता सर्वर पर संवेदनशील फ़ाइलों को नहीं देख सकें।PHP
$path = "/home/gsmcms/public_html/central/app/webroot/{$_GET['file']}";
if(file_exists($path)) {
echo file_get_contents($path);
} else {
header('HTTP/1.1 404 Not Found');
}
मेरे सिर के ऊपर बंद मुझे पता है कि इनपुट जैसे कि '../../../../../../etc/passwd' मुसीबत होगा, लेकिन सोच के रूप में अन्य क्या दुर्भावनापूर्ण इनपुट मुझे उम्मीद करनी चाहिए और उन्हें कैसे रोकें।
बस किसी भी ../ – halfdan
सहमत है कि एक समस्या का समाधान होगा युक्त इनपुट बाहर करते हैं, लेकिन मैं कई अन्य खतरों मैं के लिए बाहर देखने की जरूरत है देखते हैं कि यह सोचते हैं रहा हूँ। मैं उन सभी के लिए एक अच्छा लौह पहना हुआ समाधान ढूंढ रहा हूं – SeanDowney
@ अर्धदान - हमेशा इस तरह की सुरक्षा के लिए एक ब्लैक-लिस्ट दृष्टिकोण से बचने का प्रयास करें, हमेशा कुछ याद आएगा। जैसे बैकस्पेस वर्ण, टैब, न्यूलाइन, नल वर्ण, अन्य यूनिकोड वर्ण, या जानबूझकर टूटा हुआ यूनिकोड वर्ण जो आपके फ़िल्टर को पास करेगा, लेकिन फिर भी PHP फ़ंक्शन को ऐसा करने का कारण बनता है जिसे आप इसे से बचाने की कोशिश कर रहे थे। परीक्षण करें कि आप वास्तव में क्या चाहते हैं: परिणामी पथ एक सुरक्षित स्थान के नीचे है। – Cheekysoft