मेरे पास कुछ लिंक्स संरचित हैं जैसे कि ...
http: // domain Com? Problem_id = 23 & amp; course_id = 4 GET "फ़ील्ड्स" (problem_id और course_id) से अपेक्षित मान पूर्णांक होना चाहिए क्या मैं केवल यह कहकर इस डेटा को मान्य कर सकता हूं ...
यदि (is_numeric ($ _ GET ['problem_id'])) {// यह सुरक्षित है, सामान करते हैं } Else {echo 'ऐसा प्रतीत होता है कि आपने एक समस्या गलत तरीके से सबमिट की है कृपया सहायता के लिए हमसे संपर्क करें'; बाहर जाएं; } या यह अभी भी एसकेएल इंजेक्शन, आदि जैसे खराब करने के लिए खुला है?
प्रस्तावित समाधान
$ int_problem_id = (int ) $ _GET ['problem_id']; अगर (ctype_digit ($ int_problem_id)) {// यह सुरक्षित है, इसलिए सामान करते हैं } Else {echo 'ऐसा प्रतीत होता है कि आपने एक समस्या गलत तरीके से सबमिट की है कृपया सहायता के लिए हमसे संपर्क करें'; बाहर जाएं; }
हां, यह समाधान है इसके अलावा, आप इसके अतिरिक्त इंट को डालें।
$ integer = (int) $ _GET ['problem_id']; आपको अपने डेटाबेस के लिए सभी इनपुट को सुरक्षित करना चाहिए, भले ही संख्यात्मक मान कोई नुकसान नहीं पहुंचेगा क्योंकि वे विशेष प्रतीकों को शामिल नहीं करते हैं।
No comments:
Post a Comment