คุณใช้ทั้งเทคนิคการตรวจสอบลูกค้าและฝั่งเซิร์ฟเวอร์เมื่อตรวจสอบข้อมูลจากผู้ใช้เช่นผ่านแบบฟอร์มการติดต่อหรือไม่
ถ้าเป็นเช่นนั้นจริงหรือไม่ คุณเป็นวิศวกรหรือเปล่า
คุณใช้ทั้งเทคนิคการตรวจสอบลูกค้าและฝั่งเซิร์ฟเวอร์เมื่อตรวจสอบข้อมูลจากผู้ใช้เช่นผ่านแบบฟอร์มการติดต่อหรือไม่
ถ้าเป็นเช่นนั้นจริงหรือไม่ คุณเป็นวิศวกรหรือเปล่า
คำตอบ:
ใช่และคุณควร
วิธีนี้จะเก็บข้อเสนอแนะของผู้ใช้ทันทีโดยไม่สูญเสียการ postbacks ขณะเดียวกันก็ป้องกันผู้ใช้ที่ปิดใช้งาน JavaScript
นี่คือวิธีการที่ASP.NET ควบคุมการตรวจสอบการทำงาน
แน่นอนว่ามันไม่ได้ใช้วิธีการทางวิศวกรรมมากไปกว่าการใช้อันที่ไม่มีข้อเสีย
ถ้าเป็นเช่นนั้นจริงหรือไม่
ใช่.
คุณเป็นวิศวกรหรือเปล่า
เลขที่
การตรวจสอบส่วนหน้าสามารถให้ข้อเสนอแนะได้ทันทีหากเป็นส่วนต่อประสานที่หลากหลาย
แบ็คเอนด์สามารถใช้งานได้หลายฟรอนต์เอ็นด์ และเป็นเพียงการตรวจสอบสำหรับแผนสำรอง HTML เท่านั้น (ไม่มีจาวาสคริปต์)
หนึ่งในปัจจัยพื้นฐานแรกที่ฉันเรียนรู้เกี่ยวกับความปลอดภัยคือแฮกเกอร์จะไม่ใช้ UI ของคุณ
โดยปกติแล้วการตรวจสอบด้านลูกค้าใด ๆ สามารถข้ามผ่านเว็บแอปได้อย่างง่ายดายหากพวกเขามีแบบฟอร์มท้องถิ่นของคุณเองแล้วส่งกลับไปที่เซิร์ฟเวอร์ของคุณ
การตรวจสอบด้านไคลเอนต์นั้นยอดเยี่ยม แต่สำหรับการปรับปรุงประสบการณ์การใช้งานของคุณและลดการเดินทางไปกลับที่ไม่จำเป็นไปยังเซิร์ฟเวอร์เพื่อทำการตรวจสอบความถูกต้อง
การตรวจสอบด้านเซิร์ฟเวอร์ควรน้อยที่สุด
และสำหรับอินพุตที่มีแนวโน้มว่าจะผิดคุณควรเพิ่มการตรวจสอบฝั่งไคลเอ็นต์
ตัวอย่างเช่น: ตรวจสอบว่าอีเมลมีรูปแบบที่ถูกต้องทั้งในฝั่งไคลเอ็นต์และฝั่งเซิร์ฟเวอร์ แต่การตรวจสอบว่าเป็นอีเมลที่ไม่ซ้ำกันหรือไม่อาจเป็นการตรวจสอบฝั่งเซิร์ฟเวอร์
ใช่ไม่ใช่ความคิดที่ดีที่จะใช้ทั้งสองอย่าง หากข้อผิดพลาดการป้อนข้อมูลผู้ใช้อย่างง่ายสามารถติดกับฝั่งไคลเอ็นต์ได้ก็ควรบอกผู้ใช้เกี่ยวกับข้อผิดพลาดเหล่านั้นก่อนส่งข้อมูลและบั๊กเซิร์ฟเวอร์ของคุณ ตัวอย่างเช่นหากผู้ใช้ป้อนสิ่งที่ไม่เหมือนกับที่อยู่อีเมลในฟิลด์ 'อีเมล' หรือป้อนสตริงเพียง 5 ตัวอักษรยาวในช่องรหัสผ่านและคุณรู้ว่าเว็บไซต์ของคุณต้องใช้รหัสผ่านที่มีความยาวอย่างน้อย 6 ตัวอักษร คุณควรบอกผู้ใช้เกี่ยวกับมันก่อนที่จะส่งอะไรไปยังเซิร์ฟเวอร์
เป็นสิ่งสำคัญที่จะต้องทำการตรวจสอบความถูกต้องเดียวกันบนเซิร์ฟเวอร์ด้วยเหตุผล 2 ประการ: 1) จะเกิดอะไรขึ้นหากผู้ใช้ปิดการใช้งาน Javascript
2) ผู้ใช้พยายามที่จะข้ามการตรวจสอบฝั่งไคลเอ็นต์ของคุณโดยไม่ประสงค์ดีซึ่งเป็นเรื่องง่ายมาก