| Kiểm tra và sử lý dấu nháy. |
|
|
|
|
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. |





