Kiểm tra và sử lý dấu nháy. PDF. In Email
Xem kết quả: / 7
Bình thườngTuyệt vời 
Làm thế nào để có thể kiểm tra và sử lý được dấu nháy trong ASP?
Nếu bạn đã từng tìm hiểu về lỗi: SQL Injection, chắc hẳn bạn biết lỗi này là do đâu. Câu trả lời là do dấu nháy được ai đó cố tình nhập vào from để gây lỗi cho câu lệnh SQL. Vậy, cách phát hiện và sử lý dấu nháy đó như thế nào? Trong bài viết này, chúng tôi sẽ hướng dẫn các bạn làm việc đó.
Ví dụ về một lỗi SQL Injection:

    ....
    Name = "abc'xyz"
    SQL = " Select * from SinhVien where  Name='abc'xyz'"
    ....

Như vậy khi thực hiện câu lệnh SQL trên thì sẽ phát sinh lỗi.
Vậy câu hỏi được đặt ra là: Làm thế nào để vô hiệu hóa được những dấu nháy như thế.
Chúng tôi trả lời như sau: Việc dấu nháy được đặt sai vị trí trong câu lệnh SQL thì sẽ gây ra lỗi, như vậy cách giải quyết ở đây là nhân đôi dấu nháy đó lên.
Trong SQL, 2 dấu nháy nằm liên nhau sẽ được coi là 1 dấu nháy và không gây ra lỗi.
Cách nhân đôi dấu nháy như sau:

    ' Câu lệnh thông thường
    TT = Request("Thong_Tin")
   
    'Sử lý: Nhân đôi dấu nháy đơn
    TT = Replace ( Thong_Tin , chr(39)  ,  chr(39)  & chr(39) )
   
    'Sử lý: Nhân đôi dấu nháy kép.
    TT = Replace ( Thong_Tin , chr(34)  ,  chr(34)  & chr(34) )

Trong đó: chr(39): dấu nháy đơn, chr(34) là dấu nháy kép, ngoài ra chr(13)  là dấu xuống dòng.
Câu lệnh SQL trên sau khi được nhân đôi dấu nháy sẽ như sau:

    SQL = " Select * from SinhVien where  Name='abc''xyz'"

Câu lệnh này không có lỗi SQL Injection
Như vậy: Trong một chuỗi SQL, bạn nên sử dụng cách trên để giảm được sự nguy hiểm cho website của bạn.
Các bài viết khác
Trả lời RSS
Phùng anh Tú  - Tương tự   |222.254.15.xxx |09-07-2010 18:26:22
Cũng có thể viết:
Code:


TT = Replace ( Thong_Tin , "'" ,"''"

Bài viết của bạn
Name:
Email:
 
Website:
Title:
UBBCode:
<strong> <em> <span style="text-decoration:underline;"> <a target=' /> [quote] [code] <img /> 
 
:angry::0:confused::cheer:B):evil::silly::dry::lol::kiss:
:D:pinch::(:shock::X:side::):P:unsure::woohoo:
:huh::whistle:;):s:!::?::idea::arrow:
Vui lòng nhập vào mã số an toàn.
http://hotrolaptrinh.com

3.26 Copyright (C) 2008 Compojoom.com / Copyright (C) 2007 Alain Georgette / Copyright (C) 2006 Frantisek Hliva. All rights reserved."

 
Các bài viết liên quan.
Copyright © 2009 Cộng đồng Hỗ Trợ Lập Trình.

Administrator: Đỗ Ngọc Hải & Phan Văn Vương

Validated by HTML Validator (based on Tidy)
Điều khoản sử dụng       Khước từ trách nhiệm