
Rails में CVE-2017-17917 SQL इंजेक्शन का शैक्षिक प्रदर्शन, कदम-दर-कदम प्रतिकृति और पैरामीटराइज्ड क्वेरी का उपयोग करके सुरक्षित कोडिंग शमन के साथ।
यह परियोजना id पैरामीटर में SQL इंजेक्शन भेद्यता के प्रतिकृति को प्रदर्शित करती है, और बाद में इस सुरक्षा मुद्दे को कम करने और हल करने के लिए अंतर्दृष्टि प्रदान करती है। https://www.cvedetails.com/cve/CVE-2017-17917/?q=CVE-2017-17917
स्टैक:
Ruby: 3.2.2
Rails: 7.0.8
Docker 24.0.5
Docker-Compose 1.29.2
PostgreSQL

हमने इस CVE को चुना ताकि Rails के नवीनतम संस्करणों में इस समस्या के निरंतर होने पर प्रकाश डाला जा सके, जो विकास की सर्वोत्तम प्रथाओं की प्रासंगिकता को पुनः स्थापित करता है।

आवश्यकताएँ:
docker
docker-compose
प्रोजेक्ट बनाने के चरण:
sudo docker-compose build

sudo docker-compose run web bundle install

sudo docker-compose run web rails db:create db:migrate db:seed

sudo docker-compose up

http://localhost:3000/ पर जाएँ


SQL इंजेक्शन पैरामीटर 1 OR id > 1

इस SQL इंजेक्शन के साथ, एक हमलावर उपयोगकर्ता डेटा प्राप्त कर सकता है जिसे देखने की सामान्यतः अनुमति नहीं होती।
निष्पादन की कठिनाई: आसान
समस्या कंट्रोलर विधि में है, विशेष रूप से जब निम्नानुसार where क्लॉज़ का आह्वान किया जाता है:
@clients = Client.where("id = #{params[:id_search]}")
कोड का लिंक
समस्या निम्नलिखित दृष्टिकोण का उपयोग करके हल हो जाती है:
@clients = Client.where(id: "#{params[:id_search]}")
कोड का लिंक
sudo docker-compose run web rspec
