บทช่วยสอน PHP ตรวจสอบแบบฟอร์ม ที่ดีที่สุดในปี 2024 ในบทช่วยสอนนี้ คุณสามารถเรียนรู้ PHP ตรวจสอบแบบฟอร์ม,ฟิลด์ข้อความ,ปุ่ม,องค์ประกอบของแบบฟอร์ม,แบบ PHP จำเป็นที่จะทำให้เกิดความสนใจไปที่ไหน?,วิธีการหลีกเลี่ยง $ _SERVER [ "PHP_SELF"] ถูกเอาเปรียบ?,ใช้ PHP แบบฟอร์มการตรวจสอบข้อมูล,ตัวอย่าง,
บทนี้จะอธิบายวิธีการใช้ข้อมูลแบบ PHP ของเราส่งมาโดยการตรวจสอบลูกค้า
ในการจัดการกับแบบ PHP เราจำเป็นต้องพิจารณาการรักษาความปลอดภัย บทนี้เราจะแสดงให้คุณแบบ PHP การประมวลผลความปลอดภัยของข้อมูลเพื่อป้องกันไม่ให้แฮกเกอร์และสแปมเราจำเป็นต้องรักษาความปลอดภัยตรวจสอบข้อมูลแบบฟอร์ม |
รูปแบบ HTML ที่อธิบายไว้ในส่วนนี้มีช่องใส่ต่อไปนี้: ต้องใช้กับช่องข้อความเลือกปุ่มและส่งปุ่ม:
ดังกล่าวข้างต้นรูปแบบกฎการตรวจสอบมีดังนี้
สนาม | กฎการตรวจสอบ |
---|---|
ชื่อ | ต้อง + มีเพียงตัวอักษรและช่องว่าง |
ต้อง + ต้องเป็นที่อยู่อีเมลที่ถูกต้อง (รวมถึง '@' และ '.') | |
สถาน | ต้อง ถ้ามีก็ต้องมี URL ที่ถูกต้อง |
คำพูด | ต้อง ช่องใส่หลายสาย (เขตข้อความ) |
เพศ | ต้อง คุณต้องเลือก |
อันดับแรกให้เราดูที่รหัสรูปแบบ HTML ธรรมดา:
"ชื่อ", "E-mail" และ "URL" ข้อมูลเป็นองค์ประกอบการป้อนข้อความฟิลด์ "หมายเหตุ" เป็น textarea โค้ด HTML ดังนี้
“名字”: <input type="text" name="name"> E-mail: <input type="text" name="email"> 网址: <input type="text" name="website"> 备注: <textarea name="comment" rows="5" cols="40"></textarea>
"เพศ" ฟิลด์เป็นปุ่มโค้ด HTML ลักษณะเช่นนี้:
性别: <input type="radio" name="gender" value="female">女 <input type="radio" name="gender" value="male">男
รหัสรูปแบบ HTML ดังนี้
<form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>">
ใช้วิธีการแบบฟอร์มนี้ = "โพสต์" วิธีการในการส่งข้อมูล
คือ $ _SERVER [ "PHP_SELF"] ตัวแปรอะไร? $ _SERVER [ "PHP_SELF"] เป็นตัวแปรทั่วโลกซุปเปอร์ส่งกลับชื่อไฟล์สคริปต์ในขณะนี้การดำเนินการที่เกี่ยวข้องกับรากเอกสาร |
ดังนั้น $ _SERVER [ "PHP_SELF"] จะส่งข้อมูลแบบฟอร์มหน้าปัจจุบันแทนการกระโดดไปยังหน้าเว็บที่แตกต่างกัน
htmlspecialchars () วิธีการคืออะไร? htmlspecialchars () ฟังก์ชั่นกับตัวละครที่กำหนดไว้ล่วงหน้าในบางหน่วยงาน HTML ตัวละครที่กำหนดไว้ล่วงหน้าคือ:
|
$ _SERVER [ "PHP_SELF"] ตัวแปรสามารถนำมาใช้โดยแฮกเกอร์!
เมื่อแฮกเกอร์ใช้ข้ามไซต์เชื่อมโยงการเขียนสคริปต์ HTTP เพื่อโจมตี $ _ SERVER [ "PHP_SELF"] ตัวแปรจะถูกฝังอยู่ในสคริปต์เซิร์ฟเวอร์ เหตุผลก็คือว่าข้ามไซต์ไฟล์สคริปต์ที่ปฏิบัติการอยู่ติดกับเส้นทางที่อยู่เบื้องหลังดังนั้น $ _SERVER [ "PHP_SELF"] สตริงจะมีการเชื่อมโยงเบื้องหลัง HTTP รหัส JavaScript
XSS ยังเป็นที่รู้จัก CSS (Cross Site-Script) ข้ามไซต์โจมตีการเขียนสคริปต์ โจมตีที่เป็นอันตรายที่จะแทรกหน้าเว็บที่เป็นอันตรายในโค้ด HTML เมื่อผู้ใช้เรียกดูหน้าเว็บที่ฝังอยู่ภายในรหัส HTML จะถูกดำเนินการเพื่อให้บรรลุวัตถุประสงค์ที่เฉพาะเจาะจงของใช้ที่เป็นอันตราย |
ระบุไฟล์รูปแบบดังต่อไปนี้ชื่อ "test_form.php":
<form method="post" action="<?php echo $_SERVER["PHP_SELF"];?>">
ตอนนี้เราใช้ URL เพื่อส่งที่ระบุอยู่ "test_form.php" ดังแสดงในโค้ดข้างต้นมีการแก้ไขดังต่อไปนี้:
<form method="post" action="test_form.php">
ทำดีเพื่อให้
แต่คำนึงถึงผู้ใช้จะป้อนที่อยู่ต่อไปนี้ในแถบที่อยู่ของเบราว์เซอร์ของคุณ:
http://www.w3write.com/test_form.php/%22%3E%3Cscript%3Ealert('hacked')%3C/script%3E
URL ที่ดังกล่าวข้างต้นจะถูกตีความว่าเป็นรหัสต่อไปนี้และดำเนินการได้:
<form method="post" action="test_form.php/"><script>alert('hacked')</script>
เพิ่มรหัสแท็กสคริปต์และเพิ่มคำสั่งแจ้งเตือน เมื่อโหลดหน้าเว็บจะรันโค้ดจาวาสคริ (ผู้ใช้จะเห็นป๊อปอัพ) นี่เป็นเพียงตัวอย่างง่ายๆเพื่อแสดงให้เห็นตัวแปร PHP_SELF จะถูกใช้โดยแฮกเกอร์
โปรดทราบว่าโค้ด JavaScript ใด ๆ ที่สามารถเพิ่มไปยัง <script> แท็ก! แฮกเกอร์สามารถใช้เพจนี้เพื่อเปลี่ยนเส้นทางไปยังเซิร์ฟเวอร์บนหน้าอื่นไฟล์โค้ดหน้าเพื่อป้องกันโค้ดที่เป็นอันตรายรหัสสามารถแก้ไขได้ที่จะได้รับตัวแปรทั่วโลกของผู้ใช้หรือข้อมูลในแบบฟอร์ม
$ _SERVER [ "PHP_SELF"] โดย htmlspecialchars () ฟังก์ชันเพื่อหลีกเลี่ยงการถูกเอาเปรียบ
รูปของรหัสดังต่อไปนี้:
<form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>">
htmlspecialchars () เพื่อตัวอักษรที่กำหนดไว้ล่วงหน้าในบางหน่วยงาน HTML ตอนนี้ถ้าผู้ใช้ต้องการใช้ตัวแปร PHP_SELF ผลจะออกเป็นดังนี้
<form method="post" action="test_form.php/"><script>alert('hacked')</script>">
ความพยายามช่องโหว่ล้มเหลว!
ครั้งแรกของทั้งหมดที่เราได้ส่งข้อมูลให้กับผู้ใช้ () ฟังก์ชั่นการประมวลผลผ่าน htmlspecialchars ของ PHP
เมื่อเราใช้ htmlspecialchars () ฟังก์ชันที่ผู้ใช้พยายามที่จะส่งช่องข้อความต่อไปนี้:
<script>location.href('http://www.w3write.com')</script>
รหัสจะไม่ต้องถูกประหารชีวิตเพราะมันจะถูกบันทึกเป็นรหัสหลบหนี HTML ดังนี้
<script>location.href('http://www.w3write.com')</script>
รหัสข้างต้นมีความปลอดภัยและสามารถแสดงหรือใส่ข้อความในหน้า
เมื่อผู้ใช้ส่งแบบฟอร์มที่เราจะทำสองสิ่งต่อไปนี้:
ให้ฟังก์ชั่นการกรองเหล่านี้เขียนในฟังก์ชั่นของความหมายของเราเองนี้มากสามารถเพิ่มสามารถนำมาใช้รหัส
ฟังก์ชั่นชื่อ test_input ()
ตอนนี้เราสามารถ test_input () ฟังก์ชั่นในการตรวจสอบทั้งหมดของตัวแปรใน $ _POST รหัสสคริปต์จะเป็นดังนี้:
ทราบว่าเมื่อเรารันสคริปต์ข้างต้นโดย $ _SERVER [ "REQUEST_METHOD"] การตรวจสอบว่าการส่งแบบฟอร์ม หาก REQUEST_METHOD โพสต์รูปแบบจะถูกส่ง - ข้อมูลจะถูกตรวจสอบ หากรูปแบบที่ไม่ได้ส่งมาจะข้ามการตรวจสอบและแสดงว่างเปล่า
ใช้รายการการป้อนข้อมูลในตัวอย่างข้างต้นเป็นตัวเลือกแม้ว่าผู้ใช้ไม่ได้ป้อนข้อมูลใด ๆ ที่สามารถแสดงผลได้อย่างถูกต้อง
ในส่วนถัดไปเราจะอธิบายถึงวิธีการตรวจสอบข้อมูลป้อนโดยผู้ใช้