Hướng dẫn replace mysql_real_escape_string - thay thế mysql_real_escape_string

(Php 4> = 4.3.0, Php 5)

mysql_real_escape_string - thoát các ký tự đặc biệt trong một chuỗi để sử dụng trong câu lệnh SQLEscapes special characters in a string for use in an SQL statement

Sự mô tả

MySQL_REAL_ESCAPE_STRING (Chuỗi $unescaped_string, Tài nguyên $link_identifier = NULL): Chuỗi(string $unescaped_string, resource $link_identifier = NULL): string

MySQL_REAL_ESCAPE_STRING () gọi chức năng thư viện của MySQL MySQL_REAL_ESCAPE_STRING, đã chuẩn bị ngược lại cho các ký tự sau: \x00, \n, \r, \, ', " và ____. calls MySQL's library function mysql_real_escape_string, which prepends backslashes to the following characters: \x00, \n, \r, \, ', " and

SELECT * FROM users WHERE user='aidan' AND password='' OR ''=''
0.

Hàm này phải luôn luôn (với một vài ngoại lệ) được sử dụng để làm cho dữ liệu an toàn trước khi gửi truy vấn đến MySQL.

Thận trọng

Bảo mật: Bộ ký tự mặc định

Bộ ký tự phải được đặt ở cấp độ máy chủ hoặc với hàm API mysql_set_charset () để nó ảnh hưởng đến mysql_real_escape_string (). Xem phần Khái niệm trên các bộ ký tự để biết thêm thông tin.mysql_set_charset() for it to affect mysql_real_escape_string(). See the concepts section on character sets for more information.

Thông số

SELECT * FROM users WHERE user='aidan' AND password='' OR ''=''
1

Chuỗi sẽ được thoát ra.

SELECT * FROM users WHERE user='aidan' AND password='' OR ''=''
2

Kết nối MySQL. Nếu định danh liên kết không được chỉ định, liên kết cuối cùng được mở bởi mysql_connect () được giả định. Nếu không tìm thấy liên kết như vậy, nó sẽ cố gắng tạo một liên kết như thể mysql_connect () đã được gọi mà không có đối số. Nếu không tìm thấy kết nối hoặc thiết lập, lỗi cấp

SELECT * FROM users WHERE user='aidan' AND password='' OR ''=''
3 được tạo ra.mysql_connect() is assumed. If no such link is found, it will try to create one as if mysql_connect() had been called with no arguments. If no connection is found or established, an
SELECT * FROM users WHERE user='aidan' AND password='' OR ''=''
3
level error is generated.

Trả về giá trị

Trả về chuỗi thoát hoặc

SELECT * FROM users WHERE user='aidan' AND password='' OR ''=''
4 về lỗi.
SELECT * FROM users WHERE user='aidan' AND password='' OR ''=''
4
on error.

Errors/Exceptions

Thực hiện chức năng này mà không có kết nối MySQL hiện tại cũng sẽ phát ra các lỗi PHP cấp

SELECT * FROM users WHERE user='aidan' AND password='' OR ''=''
3. Chỉ thực thi chức năng này với kết nối MySQL hợp lệ.
SELECT * FROM users WHERE user='aidan' AND password='' OR ''=''
3
level PHP errors. Only execute this function with a valid MySQL connection present.

Ví dụ

Ví dụ #1 Simple MySQL_REAL_ESCAPE_STRING () Ví dụmysql_real_escape_string() example

SELECT * FROM users WHERE user='aidan' AND password='' OR ''=''
6

Ví dụ #2 mysql_real_escape_string () yêu cầu một ví dụ kết nốimysql_real_escape_string() requires a connection example

Ví dụ này cho thấy những gì xảy ra nếu kết nối MySQL không có mặt khi gọi chức năng này.

SELECT * FROM users WHERE user='aidan' AND password='' OR ''=''
7

Ví dụ trên sẽ xuất ra một cái gì đó tương tự như:

Warning: mysql_real_escape_string(): No such file or directory in /this/test/script.php on line 5
Warning: mysql_real_escape_string(): A link to the server could not be established in /this/test/script.php on line 5

bool(false)
string(41) "SELECT * FROM actors WHERE last_name = ''"

Ví dụ #3 Một ví dụ về cuộc tấn công tiêm SQL

SELECT * FROM users WHERE user='aidan' AND password='' OR ''=''
8

Truy vấn được gửi đến MySQL:

SELECT * FROM users WHERE user='aidan' AND password='' OR ''=''

Điều này sẽ cho phép bất cứ ai đăng nhập mà không cần mật khẩu hợp lệ.

Ghi chú

Ghi chú::

Một kết nối MySQL được yêu cầu trước khi sử dụng mysql_real_escape_string () nếu không một lỗi của cấp

SELECT * FROM users WHERE user='aidan' AND password='' OR ''=''
3 được tạo và
SELECT * FROM users WHERE user='aidan' AND password='' OR ''=''
4 được trả về. Nếu
SELECT * FROM users WHERE user='aidan' AND password='' OR ''=''
2 không được xác định, kết nối MySQL cuối cùng được sử dụng.mysql_real_escape_string() otherwise an error of level
SELECT * FROM users WHERE user='aidan' AND password='' OR ''=''
3
is generated, and
SELECT * FROM users WHERE user='aidan' AND password='' OR ''=''
4
is returned. If
SELECT * FROM users WHERE user='aidan' AND password='' OR ''=''
2 isn't defined, the last MySQL connection is used.

Ghi chú::

Một kết nối MySQL được yêu cầu trước khi sử dụng mysql_real_escape_string () nếu không một lỗi của cấp

SELECT * FROM users WHERE user='aidan' AND password='' OR ''=''
3 được tạo và
SELECT * FROM users WHERE user='aidan' AND password='' OR ''=''
4 được trả về. Nếu
SELECT * FROM users WHERE user='aidan' AND password='' OR ''=''
2 không được xác định, kết nối MySQL cuối cùng được sử dụng.stripslashes() to the data. Using this function on data which has already been escaped will escape the data twice.

Ghi chú::

Một kết nối MySQL được yêu cầu trước khi sử dụng mysql_real_escape_string () nếu không một lỗi của cấp

SELECT * FROM users WHERE user='aidan' AND password='' OR ''=''
3 được tạo và
SELECT * FROM users WHERE user='aidan' AND password='' OR ''=''
4 được trả về. Nếu
SELECT * FROM users WHERE user='aidan' AND password='' OR ''=''
2 không được xác định, kết nối MySQL cuối cùng được sử dụng.

Nếu Magic_quotes_GPC được bật, trước tiên hãy áp dụng các stripslashes () vào dữ liệu. Sử dụng chức năng này trên dữ liệu đã được thoát ra sẽ thoát khỏi dữ liệu hai lần.: mysql_real_escape_string() does not escape $unescaped_string2 and $unescaped_string3. These are wildcards in MySQL if combined with $unescaped_string4, $unescaped_string5, or $unescaped_string6.

Nếu chức năng này không được sử dụng để thoát dữ liệu, truy vấn dễ bị tấn công SQL.

  • Lưu ý: MySQL_REAL_ESCAPE_STRING () không thoát $unescaped_string2 và $unescaped_string3. Đây là những ký tự đại diện trong MySQL nếu kết hợp với $unescaped_string4, $unescaped_string5 hoặc $unescaped_string6.
  • Xem thêm
  • mysql_set_charset () - Đặt bộ ký tự máy khách
  • mysql_client_encoding () - Trả về tên của bộ ký tự
  • AddSlashes () - Chuỗi trích dẫn với dấu gạch chéo
  • StripsLashes () - Un -Quotes một chuỗi được trích dẫn

Chỉ thị Magic_quotes_GPC

Chỉ thị Magic_quotes_Runtime

$unescaped_string7

$unescaped_string8

$unescaped_string9

$link_identifier0

Feedr ¶

11 năm trước

$link_identifier1

Nicolas ¶

16 năm trước

$link_identifier2

$link_identifier3

$link_identifier4

$link_identifier5

$link_identifier6

$link_identifier7

$link_identifier8

$link_identifier9

\x000

\x001

\x002

\x003

\x004

Sam tại numbbsafari dot com ¶

10 năm trước

\x005

\x006

\x007

\x008

\x004

Rohankumar Dot 1524 tại Gmail Dot Com ¶

1 năm trước

\n0

\n1

\n2

\n3

\n4

Strata_ranger tại hotmail dot com

12 năm trước

\n5

PLGS tại Ozemail Dot Com Dot Au ¶

13 năm trước

\n6

Aljo ¶

4 năm trước

\n7

\n8

\n9

\r0

\r1

\r2

\r3

\r4

\r5

\r6

\r7

\r8

\r9

\0

\1

\2

\3

\x004

Jonnie ¶

1 năm trước

\5

\6

\x004