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

Bài Viết Liên Quan

Chủ Đề