एक क्रॉस साइट अनुरोध जालसाजी (CSRF) हमला खुले पृष्ठों में उपयोगकर्ता सत्र के प्रबंधन के लिए वेब ब्राउज़रों के आम तौर पर स्वीकार्य तर्क का शोषण करता है। मानक यह है कि उपयोगकर्ता के पास वर्तमान में उपयोग किए जा रहे वेब एप्लिकेशन में केवल एक सक्रिय सत्र हो सकता है। आपके ब्राउज़र में कोई भी नया खोला गया टैब स्वचालित रूप से पहले से लॉग इन किए गए उपयोगकर्ता की कुकीज़ का उपयोग करेगा। हमलावर इस तथ्य का उपयोग अक्सर अपने शिकार को क्लिक करने के बाद विशेष रूप से तैयार लिंक भेजकर करता है जिस पर कार्रवाई उस पृष्ठ पर शुरू की जाएगी (जैसे पासवर्ड परिवर्तन) उस पृष्ठ पर जहां पीड़ित का सक्रिय सत्र होता है।
इस प्रकार के हमले के खिलाफ सुरक्षा अक्सर एक विशेष अद्वितीय और अप्रत्याशित पैरामीटर जोड़कर होती है, कम से कम प्रति सत्र, जो संवेदनशील अनुरोधों (जैसे पासवर्ड बदलने, एक नया उपयोगकर्ता जोड़ने) के लिए एक चर के रूप में चिपकाया जाता है और जिसकी शुद्धता सर्वर द्वारा सत्यापित की जाती है। एक हमलावर जो इस टोकन के मूल्य को नहीं जानता है, वह यह अनुरोध उत्पन्न करने में असमर्थ है कि सर्वर एंटीसीआरएफ टोकन के गैर-अनुपालन के कारण अस्वीकार नहीं करेगा।
मैंने जिन अनुप्रयोगों का परीक्षण किया उनमें से एक में, मैंने कई CSRF हमलों को अंजाम देने की संभावना की खोज की। एक उदाहरण में प्रवेश करने के बाद एक विशेष रूप से तैयार किया गया पृष्ठ तैयार करना है, जो लॉग-इन उपयोगकर्ता द्वारा, उपयोगकर्ता की ओर से पासवर्ड बदलने का अनुरोध किया जाएगा। निम्नलिखित इस पृष्ठ के लिए कोड है, साथ ही मापदंडों के साथ जो नया पासवर्ड देने के लिए जिम्मेदार हैं। ध्यान दें कि निम्नलिखित प्रिंटआउट में चयनित लाइन उस कोड को दिखाती है जो इनपुट फॉर्म फ़ील्डको परिभाषित करता है जहां नया पासवर्ड परिभाषित किया गया है।
प्रतिस्थापित पृष्ठ को दर्ज करने वाले उपयोगकर्ता के सत्रों का उपयोग करने वाला स्वचालित रूप से भेजा गया अनुरोध निम्नलिखित जैसा दिखता है:
मेजबान: XXXXX
उपयोगकर्ता-एजेंट: मोज़िला/5.0 (X11; लिनक्स x86_64; rv:45.0) छिपकली/20100101 फ़ायरफ़ॉक्स/45.0
[...]
-----------------------------70124987214088125821572825923
सामग्री-स्वभाव: फॉर्म-डेटा; नाम="newpassword"
csrf
[...]
इसके जवाब में, एप्लिकेशन पासवर्ड परिवर्तन की पुष्टि करता है, जो निम्नलिखित स्क्रीनशॉट में दिखाया गया है: