Xác thực phía máy chủ php

Sau khi tạo biểu mẫu HTML, bạn sẽ cần kiểm tra tính hợp lệ của biểu mẫu, vì không có gì đảm bảo rằng đầu vào do người dùng cung cấp luôn chính xác

PHP có thể xác thực phía máy chủ nhập biểu mẫu, do người dùng gửi bằng biểu mẫu HTML

Bạn cần kiểm tra một số thứ

  • Chỉ số
  • Giá trị trống
  • chiều dài đầu vào
  • Tách thẻ HTML
  • Địa chỉ email

Thông tin nhân viên Mẫu HTML Mẫu

Khối mã bên dưới hiển thị một biểu mẫu HTML đơn giản với Xác thực phía máy chủ PHP

Biểu mẫu HTML

Đầu tiên, chúng ta hãy nhìn vào mẫu dưới đây. Mục đích của biểu mẫu là để nắm bắt chi tiết người dùng (tên, số và email)

Xác thực phía máy chủ php

Thí dụ




 
 Employee Information Sample HTML Form
 



  " .$errorMsg. "

" ;} ?>
Employee Name: >
Contact No.: >
Personal Email: >

Nắm bắt và xác thực nội dung biểu mẫu

Hãy xem PHP cần thiết để xác thực biểu mẫu đã gửi. Tất cả mã này sẽ được đặt ở đầu trang trước HTML cho biểu mẫu

Các ví dụ này sẽ chỉ ra cách xử lý các biểu mẫu PHP có lưu ý đến tính bảo mật. Xác nhận đúng cách dữ liệu biểu mẫu là điều quan trọng để bảo vệ biểu mẫu của bạn khỏi tin tặc và những kẻ gửi thư rác

Biểu mẫu HTML mà chúng ta sẽ làm việc trong các chương trình này, bao gồm các trường nhập liệu khác nhau. trường văn bản bắt buộc và tùy chọn, nút radio và nút gửi

Các quy tắc xác thực cho các biểu mẫu trên như sau

File Quy tắc xác thực Tên bắt buộc, yêu cầu bắt buộc, bao gồm các ký tự và khoảng trắngE-mailrequired, yêu cầu bắt buột, địa chỉ email đúng định dạng (chứa @ và. )Websitetùy chọn, yêu cầu không bắt buột, chứa URL có giá trịNhận xét tùy chọn, yêu cầu không bắt buột, chứa nhiều dòng thông tin nhập vàoGenderrequired, yêu cầu bắt buột, chọn một tùy chọn

Trước tiên, chúng tôi sẽ xem xét mã HTML thuần túy cho biểu mẫu

Trường văn

Tên trường, email và trang web là các yếu tố nhập văn bản và trường nhận xét là một vùng văn bản. Code HTML as after

Name: 
E-mail: 
Website: 
Comment: 

Các nút Radio

Các trường được giới hạn là các nút radio và mã HTML như sau

Gender:
Female
Male
Other

Dạng phần tử

Mã HTML của biểu mẫu biểu mẫu như sau

Khi biểu mẫu được gửi đi, dữ liệu biểu mẫu được gửi bằng method = "post"

Biến $_SERVER["PHP_SELF"] là gì?

$_SERVER["PHP_SELF"] là một siêu biến toàn cục trả về tên tệp của lệnh hiện đang thực thi

Vì vậy,

Name: 
E-mail: 
Website: 
Comment: 
6 sẽ gửi dữ liệu biểu mẫu đã gửi đến trang chính đó, thay vì chuyển sang một trang khác. Bằng cách này, người dùng sẽ nhận được thông báo lỗi trên cùng một trang với biểu mẫu

Hàm htmlspecialchars() là gì?

Hàm

Name: 
E-mail: 
Website: 
Comment: 
7 chuyển đổi các ký tự đặc biệt thành HTML thông thường có thể thực hiện được. Điều này có nghĩa là nó sẽ thay thế các ký tự HTML đặc biệt như @, #, $.  . Điều này ngăn chặn những kẻ tấn công khai thác mã bằng cách chèn mã HTML hoặc Javascript (Các cuộc tấn công Tập lệnh chéo trang web) trong các biểu mẫu

Lưu ý quan trọng về biểu mẫu PHP


Biến

Name: 
E-mail: 
Website: 
Comment: 
6 có thể bị hacker sử dụng

Nếu

Gender:
Female
Male
Other
0 được sử dụng trong trang của bạn thì người dùng có thể nhập dấu gạch chéo (/) rồi thực thi một số lệnh Cross Site Scripting (XSS)

Cross-site scripting (XSS) là một loại lỗi truy cập mật mã máy tính thường thấy trong các ứng dụng Web. XSS cho phép những kẻ tấn công đưa tập lệnh phía máy khách vào các trang Web được người dùng khác xem

Giả sử chúng ta có biểu mẫu sau trong một trang có tên "test_form. php"

">

Bây giờ, nếu người dùng nhập URL bình thường vào thanh địa chỉ như "http. //www. thí dụ. com/test_form. php", thì đoạn mã trên sẽ được giao dịch thành công

Tuy nhiên, hãy xem nhận xét rằng người dùng nhập URL sau đó vào thanh địa chỉ

http. //www. thí dụ. com/test_form. php/%22%3E%3Cscript%3Ealert('hacked')%3C/script%3E

Trong trường hợp này, mã trên sẽ được giao dịch thành

This code add a command tag and a command warning. Và khi tải trang, mã JavaScript sẽ được thực thi (người dùng sẽ thấy một hộp cảnh báo). Đây chỉ là một ví dụ đơn giản và vô hại về cách khai thác biến PHP_SELF

Vui lòng lưu ý rằng bất kỳ mã JavaScript nào cũng có thể được thêm vào bên trong thẻ

Gender:
Female
Male
Other
1

Gender:
Female
Male
Other
2

Gender:
Female
Male
Other
3 của PHP)
  • Xóa dấu gạch chéo ngược (
    Gender:
    Female
    Male
    Other
    4) khỏi dữ liệu đầu vào của người dùng (với dấu gạch chéo ngược () trong PHP)
  • Bước tiếp theo là tạo ra một chức năng sẽ thực hiện tất cả các công việc kiểm tra cho chúng ta (điều kiện này thuận tiện hơn nhiều so với việc viết đi viết lại cùng một đoạn mã)

    Chúng ta sẽ đặt tên cho hàm là

    Gender:
    Female
    Male
    Other
    5

    Bây giờ, chúng ta có thể kiểm tra từng biến

    Gender:
    Female
    Male
    Other
    6 bằng hàm
    Gender:
    Female
    Male
    Other
    5 và tập lệnh như sau

    Ví dụ

    Ví dụ

    Name: 
    E-mail: 
    Website: 
    Comment: 
    4

    View results

    Lưu ý rằng khi bắt đầu tập lệnh, chúng ta sẽ kiểm tra xem biểu mẫu đã được gửi bằng cách sử dụng biến

    Gender:
    Female
    Male
    Other
    8 hay chưa. Nếu REQUEST_METHOD là POST, thì biểu mẫu đã được gửi và nó sẽ được xác thực. Nếu nó chưa được gửi, thì bỏ xác thực và hiển thị một biểu mẫu trống

    Tuy nhiên, trong ví dụ trên, tất cả các trường bắt đầu là tùy chọn. Good active command ngay cả khi người dùng không nhập bất kỳ dữ liệu nào