Back to Question Center
0

मिमलॅट: फॉर्म प्रमाणीकरण - सुरक्षा आणि इनपुट तपशील

1 answers:

तर मी एका रजिस्टर फॉर्मवर काम करत आहे आणि माझ्याकडे चार फील्ड आहेत: नाव, वापरकर्तानाव, ईमेल आणि पासवर्ड. JSemalt मध्ये मी या फील्डची मूल्ये निवडतो आणि सर्व फील्ड भरलेल्या आहेत यावर अवलंबून, मी ते एजेक्सद्वारे PHP स्क्रिप्टवर पास करते.फॉर्म प्रमाणीकरणासाठी ते सुरक्षित आहे का? वापरकर्त्याकडून डेटा हाताळण्याबद्दल मी काळजीत होतो.

PHP स्क्रिप्टमध्ये मीठ टाकल्यास, मी तपासते की सर्व पोस्ट केलेल्या व्हॅल्यूजमध्ये डेटा आहे का, तरच मी काही वैधते करीत रहाणार आहे - trituratore wc amazon. मान्यतेला ते भाग आहेत जिथे मी काळजीत आहे की हे सर्वोत्तम नाही आणि त्याच्याशी अनेक दोष आहेत.

     $ नाव = $ _POST ['नाव'];
$ username = $ _POST ['वापरकर्तानाव'];
$ email = $ _POST ['ईमेल'];
$ password = $ _POST ['password'];जर (! preg_match ("/ ^ [A-Za-z '-] + $ / i", $ name)) {$ errors = "कृपया एक वैध नाव प्रविष्ट करा. ";
} दुसरे तर (! preg_match ("/ ^ [A-Za-z] + \ s [A-Za-z] + $ /", $ name)) {$ errors = "कृपया आपले नाव आणि आडनाव प्रविष्ट करा. ";
} दुसरे तर (स्ट्र्लॅन ($ वापरकर्तानाव)  <= 3 = strlen ($ username)>  15) {$ errors = "कृपया 4 ते 15 वर्णांदरम्यान एक वापरकर्तानाव निवडा. सर्जनशील व्हा. ";
} else जर (! preg_match ("/ ^ [A-Za-z] [A-Za-z0-9_]. -] {4,15} $ / ", $ username)) {$ errors = "4 ते 15 वर्णांदरम्यान एक अल्फान्यूमेरिक वापरकर्तानाव निवडा. ";
} अन्य तर (स्ट्रेलन ($ वापरकर्तानाव)  <6 || स्ट्रेलन ($ वापरकर्तानाव)>  32) {$ errors = "आपला पासवर्ड कमीत कमी 6 वर्णांचा असणे आवश्यक आहे. ";
} else {प्रतिध्वनी "वैध";
}    

या प्रमाणीकरण पद्धती सुरक्षित आहेत का? वापरकर्ता डेटामध्ये फेरबदल करू शकतो असा लूप राहील?

शेतांसाठीची आवश्यकता खालील प्रमाणे आहे - ज्यामुळॆ मला खात्री नव्हती की मी माझ्या कोडसह डोक्यावर मारा केला:

  • वापरकर्तानावात अंडरस्कोरसह अल्फान्यूमरिक वर्ण असणे आवश्यक आहे (वैकल्पिक)
  • नावाचे नाव आणि आडनाव दोन्ही असणे आवश्यक आहे
(1 9)
February 7, 2018

वरील संभाव्य धनादेशासह आपण बहुतेक हल्ले रोखू शकाल तरीही आपण डेटा नंतर सुरक्षित म्हणून हाताळू नये. येथे वास्तविक समस्या वरील प्रमाणीकरण इतकी जास्त नाही, परंतु आपण यानंतरचे डेटा काय करतो.

उदाहरणार्थ, जर आपण एस क्यू एल स्टेटमेंटमध्ये हे 'व्हॅलिडेटेड' डेटा वापरत असलात आणि वापरुन आधी योग्य रित्या बाहेर पडू शकत नाही तोपर्यंत $ पासवर्ड var जो आपण आक्रमणांसाठी खुले करू इच्छितो.

याव्यतिरिक्त आपण अति-प्रतिबंधक आहात. इन्डान्ससाठी जर माझे नाव तीन भाग होते तर ते आपल्या विनिर्देशनाद्वारे अवैध असेल.

एखाद्या सिडीट वर: आपण $ ($) पासवर्डच्या ऐवजी $ 3 ($) नावाच्या .

AJAX चा POST पद्धत वापरा. हे सुरक्षित आहे. मला प्रमाणीकरण प्रमाणीकरणासाठी पुरेसे वाटते.