मेरे पास मेरी साइट पर एक PHP संचालित HTML संपर्क फ़ॉर्म है। वर्तमान में मैं PHP mail() फ़ंक्शन का उपयोग करता हूं। इसके कारण मुझे email header injection attacks से बचने के लिए कई उपयोगकर्ता इनपुट सत्यापन करना है। मुझे लगता है कि मैं सुरक्षित हूं, लेकिन शायद मैं कुछ भूल गया था और मैं एक ठोस PHP ईमेल लाइब्रेरी में जाना चाहता हूं। मैंने चुनी लाइब्रेरी Swiftmailer है।स्विफ्टमेलर का उपयोग कर PHP-संचालित HTML संपर्क फ़ॉर्म कितना सुरक्षित हो सकता है?
- निकालता है या इस नाम में
<
और>
वर्ण से बचें:अब मैं अगर Swiftmailer संबोधित निम्नलिखित जाँच करना चाहते हैं।
- प्रेषक नामों से न्यूलाइन (
\n
,\r\n
...) हटा देता है। - ईमेल विषय से नई पंक्तियों को हटा या निकालें।
- संदेश निकाय (ईमेल की सामग्री) में न्यूलाइन सामान्यीकृत करें। PHP दस्तावेज़ों के अनुसार,
\n
सामग्री में और\r\n
ईमेल हेडर सेपरेटर के रूप में उपयोग किया जाना चाहिए।
पीएस: मैंने सफलता के बिना अपने प्रश्नों के साथ स्विफ्टमेलर टीम से संपर्क करने का प्रयास किया ताकि मैं यहां कोशिश कर रहा हूं।
संपादित करें:
मैं Swiftmailer के साथ कुछ परीक्षण मामलों किया था और इस मैं अब तक क्या मिला है:
- जब आप एक प्रेषक के नाम पर एक
<
या>
है, तो आप प्राप्त अविश्वसनीय ईमेल त्रुटि मेल। यह कुछ हद तक आपके मेल सर्वर के DOS attack में हो सकता है (शायद मैं गलत हूं)। क्या यह सामान्य है?! - न्यूलाइन बच निकले हैं इसलिए इंजेक्शन हमला विफल हो गया है।
- न्यूलाइन बच निकले हैं इसलिए इंजेक्शन हमला विफल हो गया है।
- परीक्षण किया गया लेकिन मैं यह देखने में असमर्थ हूं कि स्विफ्टमेलर क्या करता है (अगर यह कुछ करता है)। तो मैं अभी भी अंधेरे में हूँ।
क्या कोई मेरे लिए # 1 और # 4 स्पष्ट कर सकता है? मुझे यकीन नहीं है कि यह सामान्य व्यवहार है ...
तुम हमेशा कोड के माध्यम से देख सकते हैं ...स्विफ्टमेलर बस एक PHP स्क्रिप्ट है, आखिरकार। यदि आप कमजोरियों के बारे में इस भयावह हैं, तो शायद आप किसी भी बाहरी पुस्तकालयों का ऑडिट करना चाहते हैं। –
'अनुरोध डेटा सामग्री को अलग किए बिना हेडर इंजेक्शन हमलों से सुरक्षित करें' (होमपेज से) और कोड के माध्यम से किसी न किसी प्रकार से स्कैन से मैं मानता हूं कि यदि आप किसी भी चीज़ में मान्य हैं जो वैध नहीं है, तो आपको एक मूक स्वीकृति के बजाय अपवाद मिलेगा । – hakre
ऐसा लगता है कि जब तक आप किसी भी उपयोगकर्ता द्वारा सबमिट किए गए हेडर, और वर्डव्रैप ($ संदेश, 70) से \ n और \ r स्ट्रिप करते हैं, तो आपको ठीक होना चाहिए। प्रेषक नाम से < and > को अलग करने के साथ क्या सौदा है? मुझे यह जानने में बहुत दिलचस्पी होगी कि इन पात्रों के किस प्रकार के हैक आपको खुले छोड़ देते हैं। किसी भी जानकारी की काफी सराहना की जाती है। – dqhendricks