Hướng dẫn php _post security - php _post bảo mật
Tács giả: dương nguyễn phú cường Show
NgàoHồi xưa đó Các mối đe dọa an ninh tiềm năngVề cơ bản, họ là hai nhóm người có thể tấn công hệ thống của bạn
Sau đây là các loại tấn công mà chúng ta cần phải chú ý. SQL Injection & nbsp; - Loại tấn công này nối mã có hại cho & nbsp; sql & nbsp; from. Điều này được thực hiện bằng cách sử dụng các biểu mẫu đầu vào hoặc URL của người dùng sử dụng các biến. Mã được thêm vào nhận xét điều kiện trong mệnh đề WHERE của câu lệnh SQL. Mã được thêm vào cũng có thể;SQL Injection – This type of attack appends harmful code to SQL statements. This is done using either user input forms or URLs that use variables. The appended code comments the condition in the WHERE clause of an SQL statement. The appended code can also;
Kịch bản trang web chéo-& nbsp; Loại tấn công này chèn mã có hại thường là JavaScript. Điều này được thực hiện bằng cách sử dụng các biểu mẫu đầu vào của người dùng như liên hệ với chúng tôi và các mẫu bình luận. Điều này được thực hiện để; this type of attack inserts harmful code usually JavaScript. This is done using user input forms such as contact us and comments forms. This is done to;
Bảo mật ứng dụng PHP thực hành tốt nhấtBây giờ, hãy xem xét một số thực tiễn tốt nhất của bảo mật PHP mà chúng ta phải xem xét khi phát triển các ứng dụng của mình. Các chức năng Strip_tags sẽ loại bỏ HTML, & nbsp; javascript & nbsp; hoặc thẻ PHP từ một chuỗi. Chức năng này rất hữu ích khi chúng ta phải bảo vệ ứng dụng của mình chống lại các cuộc tấn công như kịch bản trang web chéo. Hãy cùng xem xét một ứng dụng chấp nhận nhận xét từ người dùng. My Commenting System"; echo $user_input; ?> Giả sử bạn đã lưu bình luận.php trong thư mục PHPTUTS, duyệt đến URL & NBSP; http: //localhost/phptuts/comments.php http://localhost/phptuts/comments.php Hãy giả sử bạn nhận được những điều sau đây là người dùng đầu vào & nbsp; cảnh báo ('trang web của bạn hút!');alert('Your site sucks!');"; echo " Duyệt đến URL & NBSP; http: //localhost/phptuts/comments.phphttp://localhost/phptuts/comments.php Bây giờ, hãy bảo đảm ứng dụng của chúng tôi khỏi các cuộc tấn công như vậy bằng cách sử dụng chức năng Strip_tags.alert('Your site sucks!');"; echo strip_tags($user_input); ?> Duyệt đến URL & NBSP; http: //localhost/phptuts/comments.php http://localhost/phptuts/comments.php Bây giờ, hãy bảo đảm ứng dụng của chúng tôi khỏi các cuộc tấn công như vậy bằng cách sử dụng chức năng Strip_tags. alert('Your site sucks!');"; echo strip_tags($user_input); ?>Hàm Filter_Var PHP Hàm Filter_VAR được sử dụng để xác nhận và vệ sinh dữ liệu. Xác thực kiểm tra nếu dữ liệu thuộc loại đúng. Kiểm tra xác thực số trên một chuỗi trả về kết quả sai. alert('Your site sucks!');"; echo filter_var($user_input, FILTER_SANITIZE_STRIPPED); ?> Output: alert('Your site sucks!'); Vệ sinh đang loại bỏ các ký tự bất hợp pháp khỏi một chuỗi. Kiểm tra liên kết này để biết toàn bộ tham chiếu & nbsp; filter_var Mã dành cho hệ thống nhận xét. Nó sử dụng chức năng Filter_VAR và Filter_Sanitize_Striped hằng số cho các thẻ dải. Hàm MySQL_REAL_ESCAPE_STRING Chức năng này được sử dụng để bảo vệ ứng dụng chống tiêm SQL. Hãy giả sử rằng chúng ta có câu lệnh SQL sau đây để xác thực ID người dùng và mật khẩu. Người dùng độc hại có thể nhập mã sau vào hộp văn bản ID người dùng. 'Hoặc 1 = 1 - và 1234 trong hộp văn bản mật khẩu cho phép mã hóa mô -đun xác thực SELECT uid,pwd,role FROM users WHERE uid = '' OR 1 = 1 -- ' AND password = '1234'; Kết quả cuối cùng sẽ là
Phần mềm-"Nhận xét phần đó kiểm tra mật khẩu. Truy vấn trên sẽ trả về tất cả người dùng cho phép, ngay bây giờ sử dụng hàm mysql_real_escape_string để bảo mật mô -đun đăng nhập của chúng tôi. SELECT uid,pwd,role FROM users WHERE uid = '\' OR 1 = 1 -- ' AND password = '1234'; Mã trên sẽ xuất ra Lưu ý & nbsp; trích dẫn đơn thứ hai đã được thoát cho chúng tôi, nó sẽ được coi là một phần của ID người dùng và mật khẩu won được nhận xét.PHP MD5 và PHP SHA1 alert('Your site sucks!');"; echo "0 MD5 là từ viết tắt của Tin nhắn Digest 5 và SHA1 là từ viết tắt của Thuật toán Hash Secure 1. Cả hai đều được sử dụng để mã hóa các chuỗi. Khi một chuỗi đã được mã hóa, nó rất tẻ nhạt để giải mã nó. MD5 và SHA1 rất hữu ích khi lưu trữ mật khẩu trong cơ sở dữ liệu. Mã dưới đây cho thấy việc triển khai MD5 và SHA1 Giả sử bạn đã lưu tệp băm.php trong thư mục Phptuts, duyệt đến URLNhư bạn có thể thấy từ các băm trên, nếu kẻ tấn công có quyền truy cập vào cơ sở dữ liệu của bạn, họ vẫn sẽ không biết mật khẩu để họ đăng nhập.
|