मैं एक PHP डेवलपर नहीं हूं लेकिन मैं PHP5 एप्लिकेशन की सुरक्षा का आकलन कर रहा हूं।
लेखक extract($_POST)
और extract($_GET)
पर कुछ स्थानों पर कार्यों के बाहर निर्भर था।
मेरा सुझाव extract($_POST, EXTR_PREFIX_ALL, 'form')
पर कॉल करना है और तदनुसार कोड बदलना है, लेकिन उनका रुख यह है कि बाद में किसी भी चर को फिर से परिभाषित किया जा रहा है।
मैं पोस्ट मूल्यों के अंदर _ENV=something
प्रदान करके सुपरग्लोबल्स को आसानी से बदल सकता हूं, लेकिन सुपरग्लोबल्स सरणी हैं और मैं उन्हें तारों में बदल रहा हूं, मुझे यकीन नहीं है कि इसका बुरा प्रभाव हो सकता है।
मैं कई isset()
उपयोगों पर एक नज़र देख सकता हूं और वहां से पीछे की ओर जाता हूं .. लेकिन मुझे लगता है कि इस तरह के हमले हैं जिनके स्रोत के ज्ञान या प्रवीणता की आवश्यकता नहीं है।
क्या कुछ दिलचस्प चर सेट/बदला जा सकता है, शायद PHP के अंदरूनी हिस्सों में?
धन्यवाद
एकमात्र चीज जो दिमाग में आती है, इस तरह एक सुपरग्लोबल ओवरराइट कर रही है (यानी '_SERVER' नामक सरणी को '$ _POST' के अंदर परिभाषित करना और उसे वैश्विक स्थान में निकालना)। क्या यह संभव है? क्या यह '$ _SERVER' ओवरराइट करेगा? शायद नहीं (मुझे उम्मीद है)। मुझे कुछ समय निकालना होगा। –
हां, यह कम से कम _ENV के साथ काम किया। EXTR_SKIP प्रदान करना ठीक करेगा। –
* (सुझाव) * [सुहोसिन] का उपयोग करना (http://www.hardened-php.net/suhosin/a_feature_list.html) सुपरग्लोबल्स की ओवरराइटिंग को रोकता है और संभावित हमले वैक्टरों को कम करने में मदद करता है। – Gordon