Tầm quan trọng của xác thực trong php là gì?

Tất nhiên, xác thực đầu vào của người dùng thực sự quan trọng đối với các trang web động. Đầu vào của người dùng không hợp lệ có thể gây ra lỗi trong quá trình xử lý. Do đó, xác nhận đầu vào là phải. Ngôn ngữ tuyệt vời, PHP có nhiều chức năng tích hợp để xác thực đầu vào của người dùng

Trong hướng dẫn này, bạn sẽ tìm hiểu về 4 nhiệm vụ chính

Xác thực phương thức yêu cầu

Trước khi tạo biểu mẫu HTML, bạn phải quyết định phương thức HTTP sẽ sử dụng trong yêu cầu HTTP của mình. Trong số các phương thức yêu cầu HTTP, các nhà phát triển thường sử dụng các phương thức GET và POST cho các biểu mẫu. Cho nên. NHẬN hay ĐĂNG?

NHẬN phương pháp

  • Nên được sử dụng để lấy [yêu cầu] dữ liệu từ một tài nguyên
  • Gửi dữ liệu có URL dưới dạng cặp khóa-giá trị
  • Nên được sử dụng để lấy dữ liệu từ một tài nguyên
  • Không bao giờ được sử dụng để gửi dữ liệu nhạy cảm
  • Kém an toàn hơn POST nhưng nhanh hơn
  • Dữ liệu khác nhau tạo ra các URL khác nhau
  • Có thể được lưu trữ trong trình duyệt. Tuy nhiên, dữ liệu ngẫu nhiên [dấu thời gian] có thể được sử dụng để bỏ qua bộ đệm
  • Vẫn còn trong lịch sử trình duyệt
  • Có giới hạn độ dài
  • Chỉ dữ liệu ASCII

phương thức ĐĂNG

  • Nên được sử dụng để đăng dữ liệu lên máy chủ
  • Nên được sử dụng để gửi dữ liệu nhạy cảm
  • Chậm hơn GET, nhưng an toàn hơn
  • Gửi dữ liệu với nội dung của thông báo HTTP
  • Không còn lại trong lịch sử trình duyệt
  • Không giới hạn độ dài
  • Bất kỳ loại dữ liệu có thể được gửi

Nếu bạn đang gửi dữ liệu nhạy cảm như mật khẩu, email có yêu cầu HTTP, bạn phải sử dụng POST. Nếu bạn đang lấy dữ liệu từ máy chủ, bạn có thể sử dụng phương thức GET

Hãy tạo biểu mẫu HTML. Ở đây tôi đã chọn phương thức POST và kịch bản hành động, hành động. php




	

 


Trình duyệt sẽ gửi dữ liệu biểu mẫu để hành động. php sau khi gửi biểu mẫu. Tôi đã tạo ra hành động. php như sau. Đầu tiên, nó sẽ xác thực phương thức yêu cầu

Trong thời đại ngày nay, khi internet rộng lớn và trải dài rất xa, có những kẻ phiền phức muốn độc hại. Và điều đó tổng hợp khá nhiều lý do tại sao bạn nên bảo mật mọi thứ. Bảo mật PHP không còn là một tùy chọn nữa; . Các trang web bị tấn công hàng ngày và khi bạn xây dựng một trang web bằng PHP, bạn cần biết cách giữ an toàn cho trang web khỏi những kẻ xấu

Bảo mật PHP là gì?

Bảo mật PHP là bảo vệ trang web của bạn bằng PHP, để giúp ngăn chặn kẻ xấu truy cập trái phép vào dữ liệu trang web của bạn. Nó giúp bạn duy trì tính toàn vẹn của dữ liệu và đảm bảo tính khả dụng khi cần. Bạn có thể bắt đầu thực hiện việc này trong PHP bằng cách xác thực và làm sạch dữ liệu trên trang web của mình, đó là những gì chúng tôi sẽ chia sẻ trong bài viết này

Vì đây là bài đăng dành cho người mới bắt đầu về xác thực và làm sạch cơ bản nên bạn sẽ muốn tìm hiểu thêm về cách giữ an toàn cho trang web của mình. Như Master Yoda nói, “Còn nhiều điều phải học, bạn vẫn còn. ”

Có liên quan. 10 bài học thiết kế web bạn có thể học từ StarWars. com

Xác thực đầu vào của người dùng và một số vệ sinh

Xác thực đầu vào của người dùng là bước đầu tiên và là một trong những bước quan trọng nhất để bảo vệ trang web của bạn. Xác thực có nghĩa là xác minh dữ liệu đi vào tập lệnh của bạn là loại dữ liệu bạn muốn, ở đúng định dạng và có độ dài phù hợp. Nếu không kiểm tra những điều này, trang web của bạn dễ bị tấn công. Tùy thuộc vào những gì tập lệnh của bạn thực hiện, nó có thể dẫn đến việc trang web của bạn bị hỏng, hiển thị thông tin xấu, cho phép kẻ xấu truy cập để lấy thông tin từ người dùng, v.v.

Biết dữ liệu đến

Bước đầu tiên để xác thực dữ liệu của bạn là biết dữ liệu nào sẽ được đưa vào. Nếu ai đó đang cố tấn công trang web của bạn, thì có thể có thêm dữ liệu. Và nếu bạn đang chấp nhận bất kỳ dữ liệu nào đến, thì bạn sẽ dễ bị tổn thương vì bạn đang cho phép mọi người làm bất cứ điều gì họ muốn

Hãy tưởng tượng rằng bạn có một biểu mẫu người dùng chấp nhận thêm nhận xét trên một trang. Bạn có các trường để ai đó thêm nhận xét bao gồm tên, địa chỉ email, nhận xét và trường ẩn của ID trang mà họ đang nhận xét. Khi người dùng gửi nhận xét, một tập lệnh sẽ xử lý nhận xét và thêm nhận xét đó vào cơ sở dữ liệu

Bây giờ chúng tôi đã có ý tưởng về thông tin nào sẽ đến với tập lệnh của mình, chúng tôi cần xác minh rằng chúng tôi có đúng dữ liệu, loại dữ liệu, giới hạn về độ dài của dữ liệu và chúng tôi không sử dụng bất kỳ thứ gì ngoài dữ liệu

Vì biểu mẫu nhận xét này sẽ được gửi tới tập lệnh của chúng tôi dưới dạng biến POST, nên chúng tôi không muốn lặp qua từng trường của POST mà không biết đó là những gì chúng tôi muốn. Đây là một ví dụ về biến POST được gửi tới tập lệnh của chúng tôi

Mảng

[

[tên] => Jerry[email] =>jerryw@fake. máy chủ trong mơ. com[comment] => Đây là một bình luận thử nghiệm đến với trang web của chúng tôi[submit] => Post Comment[page_ID] => 37

]

Điều này cho thấy rằng chúng tôi có chính xác dữ liệu mà chúng tôi yêu cầu, nhưng nếu tin tặc muốn thêm thông tin bổ sung [chẳng hạn như trường bổ sung], thì có thể có khả năng làm hỏng trang web của bạn. Đối với một biểu mẫu như thế này, tôi khuyên bạn nên gọi từng trường để bạn biết rằng bạn chỉ đang sử dụng những gì tập lệnh của bạn cần. Ví dụ: thay vì lặp qua $_POST, bạn có thể gọi từng trường như thế này

$_POST[ ‘tên’ ]

$_POST[ ‘email’ ]

Điều này sẽ giúp chỉ chấp nhận dữ liệu bạn đang mong đợi và bỏ qua phần còn lại

Tiếp theo, bạn cần biết dữ liệu được cho là gì. Ví dụ: $_POST[ ‘page_ID’ ] sẽ là một số nguyên, bởi vì nó chỉ là một id trang là một số. Vì vậy, chúng tôi biết rằng chúng tôi không muốn chấp nhận bất kỳ ký tự hoặc chữ cái đặc biệt nào cho việc này. Chúng tôi biết rằng $_POST[ ‘email’ ] là một địa chỉ email, vì vậy chúng tôi muốn kiểm tra định dạng để đảm bảo đó là một địa chỉ email hợp lệ. Trong ví dụ này, chúng tôi sẽ nói rằng chúng tôi không muốn cho phép nhận xét trên 256 ký tự

Có liên quan. 13 plugin bảo mật tốt nhất để giữ an toàn cho trang web WordPress của bạn

Kiểm tra loại dữ liệu và làm sạch nó

Bây giờ, chúng tôi đã biết mình đang chấp nhận dữ liệu nào và chúng tôi biết dữ liệu đó được phép ở dạng nào, hãy kiểm tra loại dữ liệu sắp đến

Hầu hết dữ liệu đến từ một bài đăng được coi là một chuỗi. Đôi khi, bạn có thể có các trường như đơn vị tiền tệ đến hoặc ID trang [như trong ví dụ này] mà chúng tôi biết chỉ được coi là một số

Đầu tiên, khi chúng tôi nhận được dữ liệu đến, chúng tôi muốn kiểm tra xem dữ liệu chúng tôi cần có ở đó không. Sau đó, chúng tôi muốn kiểm tra xem nó thực sự có thứ gì đó ở đó. Đây là một cách bạn có thể kiểm tra xem một trường có thực sự xuất hiện hay không

nếu [ isset[ $_POST[ ‘tên’ ] ] ]

$name = strip_tags[ trim[ $_POST[ ‘name’ ] ] ];

Here we check if the name is there with the isset[] function. This checks if the variable is there and also checks to verify the variable is not NULL. I also introduced two other functions strip_tags[] and trim[]. The strip_tags[] function strips all HTML and PHP tags from a variable. Since we know that name is just the name of a person and does not need links, or possibly malicious code, we don’t need any tags. So if a person was to add Jerry, it would only let the string ‘Jerry’ to be assigned to the variable. The trim[] function just strips any white space from beginning and end of the string [ note: If you take a look at this function on the PHP website, you can learn about other characters that you can remove with this function.For this post, though, we’re just stripping the white space].

Tiếp theo, chúng tôi sẽ kiểm tra loại ID trang của bạn. Về mặt kỹ thuật, có hai cách để thực hiện việc này [có một số cách khác mà tôi sẽ không xem xét trong bài đăng này]. Trước tiên, chúng tôi thực sự có thể kiểm tra xem ID trang có phải là số nguyên hay không bằng cách sử dụng

nếu [ is_int[ $_POST[ ‘page_ID’ ] ] ]

$pageID = $_POST[ ‘page_ID’ ];

Điều này sử dụng hàm is_int[] từ PHP để kiểm tra xem $_POST[ ‘page_id’ ] có thực sự là một số nguyên hay không. Nếu có, thì nó sẽ gán biến cho $pageID. Có các hàm tương tự mà bạn có thể sử dụng, như is_bool[], is_float[], is_numberic[] và một số hàm khác

Một cách khác để thực hiện việc này là gán $_POST[ ‘page_ID’ ] cho biến bằng cách sử dụng kiểu truyền

Đây là một ví dụ

$pageID = [int] $_POST[ ‘page_ID’ ];

Sử dụng [int] buộc page_ID là một số nguyên. Vì vậy, nếu giá trị đến là một chuỗi, thay vì một số nguyên, thì nó sẽ buộc nó là một số nguyên hoặc 0 [0] nếu không phải là một số nguyên. Sau đó, bạn có thể kiểm tra xem giá trị có bằng 0 không và trả về lỗi nếu bằng

Now, let’s take a look at the comment section. The comment section will be allowed to add tags, in case someone wants to add a link, so we don’t want to use the strip_tags[] function, since this would take their tag out. To accomplish this, we will use the htmlentities[] function. This function converts characters to HTML entities. For instance, the character ‘

Chủ Đề