Hướng dẫn php sanitize string for mysql - chuỗi sanitize php cho mysql

Trong bài viết này, bạn sẽ tìm hiểu cách vệ sinh đầu vào của người dùng cho MySQL bằng ngôn ngữ lập trình PHP.MySQL using the PHP programming language.

Vệ sinh dữ liệu là một phần quan trọng của cải tiến web, đặc biệt là khi làm việc với một hình thức mà khách hàng lần đầu tiên nhập thông tin của riêng họ và sau đó gửi điều đó đến cơ sở dữ liệu. Tiêm mã là một trong những chiến lược truyền mã lâu đời nhất mà những kẻ tấn công thường sử dụng để lạm dụng các ứng dụng web. Giống như, nếu kẻ tấn công có thể nhúng một số truy vấn dễ bị tổn thương làm đầu vào, thì đầu vào đó có thể nhận được một số thông tin quan trọng từ cơ sở dữ liệu của bạn hoặc xóa một số dữ liệu hoặc có thể xóa toàn bộ cơ sở dữ liệu. Điều này đã trở thành một vấn đề phổ biến để khai thác các ứng dụng web. Bằng cách sử dụng điều này, kẻ tấn công có thể coi thường các giao dịch, họ có thể biến thành quản trị viên của cơ sở dữ liệu hoặc chúng cũng có thể tác động đến số dư ngân hàng của chúng tôi. Trước khi ngăn chặn các kỹ thuật, chúng ta hãy biết kẻ tấn công cố gắng như thế nào trên cơ sở dữ liệu. is a vital piece of web improvement, particularly while working with a form where the client first enters their own information and afterwards sends that to the database. Code injection is one of the oldest code infusion strategies which attackers generally use to abuse web applications. Like, if an attacker is able to embed some vulnerable query as input, then that input may get some significant information from your database or erase some data or might be able to erase the entire database. This has become a common problem for exploiting web applications. By utilizing this the attacker can disregard transactions, they can turn into an administrator of the database, or they can likewise impact our bank balance. Before preventing techniques, let's know how the attacker attempts on the database.

SQL Injection 1 = 1

Giả sử có một bảng trong tên cơ sở dữ liệu 'công ty' và 'cmp_name' là một trong các trường của nó. Ở mặt trước, có một số mô -đun tìm kiếm chọn thông tin công ty trên cơ sở tên công ty. Trong bộ điều khiển, phần lớn, chúng tôi đã biên soạn truy vấn để lấy tên công ty được tìm kiếm AS-company' and 'cmp_name' one of its fields. At the front end, there are some search modules that select company information on the basis of company name. In the controller, for the most part we compose the query to fetch the searched company name as-

$query = "SELECT * FROM company WHERE cmp_name = '$cmpname' ";

Giả sử kẻ tấn công đi đến mô -đun tìm kiếm này ở mặt trước và thay vì tên công ty, anh ta đã đặt mã dưới đây trong biến tên công ty là -

 OR '1' = '1'

Tại thời điểm này, truy vấn chọn trở thành-

$query = "SELECT * FROM company WHERE cmp_name = '$cmpname' OR '1' = '1' ";

Vì điều kiện '1' = '1' luôn được đánh giá là đúng và được thực thi, lấy tất cả dữ liệu từ bảng công ty. Bằng cách này, kẻ tấn công có thể tìm nạp tất cả dữ liệu của công ty. Do đó, để bảo vệ cơ sở dữ liệu khỏi những kẻ tấn công, điều quan trọng là lọc và vệ sinh khách hàng đã nhập thông tin trước khi gửi nó đến cơ sở dữ liệu.'1' = '1' condition is always evaluated to be true and executed, fetching all the data from the company table. By this way, the attacker can fetch all the company data. Therefore, to protect the database from attackers, it is important to filter and sanitize the client entered information prior to sending it to the database.

PHP cung cấp các biến khác nhau để vệ sinh dữ liệu. Ví dụ: việc truyền trong Filter_Sanitize_Email sẽ xóa các ký tự không phù hợp cho địa chỉ email có chứa. Điều đó nói rằng, nó không xác nhận dữ liệu. Đây là một số ví dụ về các biến đã vệ sinh dữ liệu- provides different variables for sanitizing data. For example, passing in FILTER_SANITIZE_EMAIL will remove characters that are inappropriate for an email address to contain. That said, it does not validate the data. These are some examples of data sanitised variables-

Php vệ sinh email

Biến PHP Filter_sanitize_email được sử dụng để vệ sinh email. Nó loại bỏ tất cả các ký tự bất hợp pháp ngoại trừ các chữ cái, chữ số và!FILTER_SANITIZE_EMAIL is used to sanitize the email. It removes all illegal characters except letters, digits and !#$%&'*+-=?^_`{|}~@.[] and then checks whether the format is valid or not.

Thí dụ -

<?php

$email = "This email address is being protected from spambots. You need JavaScript enabled to view it."; 
  
// sanitizing the email 
$email = filter_var($email , FILTER_SANITIZE_EMAIL); 
  
// validating email 
if (!filter_var($email , FILTER_VALIDATE_EMAIL) === false) { 
    echo("$email is valid"); 
} else { 
    echo("$email is invalid"); 
} 
?>&lt;/code&gt;&lt;/pre&gt;
&lt;strong&gt;Output of the above code-&lt;/strong&gt;
&lt;pre&gt;&lt;code&gt;&lt;span id="cloaka3bbf0562fc3986ad6394b11a0e8d158"&gt;This email address is being protected from spambots. You need JavaScript enabled to view it.&lt;/span&gt;&lt;script type="text/javascript"&gt;
				document.getElementById('cloaka3bbf0562fc3986ad6394b11a0e8d158').innerHTML = '';
				var prefix = '&amp;#109;a' + 'i&amp;#108;' + '&amp;#116;o';
				var path = 'hr' + 'ef' + '=';
				var addya3bbf0562fc3986ad6394b11a0e8d158 = 'd&amp;#101;v&amp;#101;l&amp;#111;p&amp;#101;r' + '&amp;#64;';
				addya3bbf0562fc3986ad6394b11a0e8d158 = addya3bbf0562fc3986ad6394b11a0e8d158 + 'd&amp;#111;m&amp;#97;&amp;#105;n' + '&amp;#46;' + 'c&amp;#111;m';
				var addy_texta3bbf0562fc3986ad6394b11a0e8d158 = 'd&amp;#101;v&amp;#101;l&amp;#111;p&amp;#101;r' + '&amp;#64;' + 'd&amp;#111;m&amp;#97;&amp;#105;n' + '&amp;#46;' + 'c&amp;#111;m';document.getElementById('cloaka3bbf0562fc3986ad6394b11a0e8d158').innerHTML += '&lt;a ' + path + '\'' + prefix + ':' + addya3bbf0562fc3986ad6394b11a0e8d158 + '\'&gt;'+addy_texta3bbf0562fc3986ad6394b11a0e8d158+'&lt;\/a&gt;';
		 is valid</code></pre>
<p class="pad10">As, you can see in the above example, email is stored in the <strong>$email</strong> variable and it is sanitized using <strong>filter_var()</strong> to remove any illegal characters. After this process, the given email is validated.</p>
<br> <br> 		<div class="moduletable">
						
<script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js">


Chuỗi khử trùng PHP

Biến PHP Filter_Sanitize_String được sử dụng để vệ sinh chuỗi. Nó dải tất cả các thẻ HTML được phát hiện từ một chuỗi.FILTER_SANITIZE_STRING is used to sanitize the string. It strips all the HTML tags detected from a string.

<?php

$str= "<h2>Welcome to ETUTORIALSPOINT</h2>"; 
$str_new= filter_var($str, FILTER_SANITIZE_STRING); 
echo $str_new; 

?>

Đầu ra của mã trên -

Welcome to ETUTORIALSPOINT

Trong ví dụ đã cho, biến $ str chứa một chuỗi. Chuỗi này được vệ sinh bằng cách sử dụng bộ lọc chuỗi Filter_sanitize_String để tước tất cả các thẻ HTML. Sau quá trình này, chuỗi đã cho được xác thực.$str contains a string. This string is sanitized using the string filter FILTER_SANITIZE_STRING to strip all the HTML tags. After this process, the given string is validated.

PHP vệ sinh url

Hằng số PHP Filter_sanitize_url xóa tất cả các ký tự ngoại trừ các chữ cái, chữ số và $ -_.+!*'(), {} | \\^~ [] `#%";/?:@& = Cho dù định dạng có hợp lệ hay không.FILTER_SANITIZE_URL removes all characters except letters, digits and $-_.+!*'(),{}|\\^~[]`<>#%";/?:@&= from the URL string and then check whether the format is valid or not.

<?php

$url = "https://www.etutorialspoint.com"; 
  
//url sanitizer 
$url = filter_var($url, FILTER_SANITIZE_URL); 
  
//url validator 
if (!filter_var($url, FILTER_VALIDATE_URL) === false) { 
    echo("$url is valid"); 
} else { 
    echo("$url is invalid"); 
} 

?>

Đầu ra của mã trên-

https://www.etutorialspoint.com is valid

Php vệ sinh đầu vào

Hằng số PHP Filter_sanitize_encoded được sử dụng để xóa hoặc mã hóa các ký tự đặc biệt trong URL.FILTER_SANITIZE_ENCODED constant is used to remove or encode special characters in a URL.

<?php
   $url="www.etutorialspointÅÅ.com";
   $url = filter_var($url, FILTER_SANITIZE_ENCODED, FILTER_FLAG_STRIP_HIGH);
   echo $url;
?>

Đầu ra của mã trên-

www.etutorialspoint.com

Php vệ sinh đầu vào

Hằng số PHP Filter_sanitize_encoded được sử dụng để xóa hoặc mã hóa các ký tự đặc biệt trong URL.FILTER_SANITIZE_NUMBER_INT constant removes all characters except digits, plus and minus signs.

 OR '1' = '1'
0

Đầu ra của mã trên-

 OR '1' = '1'
1

Php vệ sinh đầu vào

Hằng số PHP Filter_sanitize_encoded được sử dụng để xóa hoặc mã hóa các ký tự đặc biệt trong URL.
PHP Server Side Form Validation
PHP File Upload MIME Type Validation
Complete HTML Form Validation in PHP
File Upload Validation in PHP
PHP SplFileObject Standard Library
Simple File Upload Script in PHP
Sending form data to an email using PHP
PHP secure random password generator
Php file based authentication
Simple PHP File Cache
How to get current directory, filename and code line number in PHP
PHP program to reverse a string
Insert in database without page refresh PHP
PHP remove last character from string
PHP String Contains
PHP Fix: invalid argument supplied for foreach
Ajax live data search using jQuery PHP MySQL

Làm thế nào để tôi vệ sinh PHP?

Phương pháp vệ sinh đầu vào của người dùng với PHP:..
Sử dụng các phiên bản hiện đại của MySQL và PHP ..
Đặt Charset một cách rõ ràng: $ mysqli-> set_charset ("utf8");thủ công ... .
Sử dụng các ký tự an toàn: ....
Sử dụng chức năng không gian: ....
Kiểm tra biến chứa những gì bạn đang mong đợi:.

Là vệ sinh bắt buộc trong PHP?

Do đó, để bảo vệ cơ sở dữ liệu khỏi tin tặc, cần phải vệ sinh và lọc người dùng đã nhập dữ liệu trước khi gửi nó đến cơ sở dữ liệu.it is necessary to sanitize and filter the user entered data before sending it to the database.

Làm thế nào để bạn vệ sinh chuỗi đầu vào?

Vệ sinh đầu vào của người dùng..
Không cho phép nội dung để bạn hiển thị lỗi nếu người dùng cố gắng gửi nội dung xấu ..
Nội dung thoát nên HTML được hiển thị dưới dạng văn bản.....
Nội dung sạch để chỉ cho phép HTML an toàn thông qua.....
Nội dung dải để không cho phép bất kỳ HTML nào cả.....
Thay thế nội dung để người dùng có thể nhập các thẻ không HTML mà bạn chuyển đổi thành HTML ..

Chức năng nào có thể vệ sinh văn bản trong PHP?

Hàm Filter_var () Hàm Filter_var () Chức năng cả xác thực và vệ sinh dữ liệu.filter_var() Function The filter_var() function both validate and sanitize data.