2011-04-29 33 views
5

Tôi có mã javascript truy cập cơ sở dữ liệu sqlite3. Tôi muốn xác nhận giá trị trường văn bản của mình và ngăn chặn việc tiêm SQL. Có một "thuật toán tối ưu" cho điều đó?Làm thế nào để tránh SQL injection trong một trường văn bản javascript?

--cập nhật: Tôi đang phát triển ứng dụng máy tính để bàn Xulrunner. Có lẽ tôi nên sử dụng cơ sở dữ liệu trong thành phần xpcom, được biên soạn (được viết bằng C), vì vậy người dùng sẽ không có quyền truy cập vào nó ..

+0

Có lẽ Javascript không truy cập trực tiếp vào cơ sở dữ liệu, vì Javascript thường được tìm thấy ở phía máy khách. Bạn đang chạy trên máy chủ của bạn? –

+0

dupe? http://stackoverflow.com/questions/3913837/best-way-to-prevent-sql-injection-using-javascript-or-c – slandau

+0

Mã javascript của bạn đang truy cập trực tiếp vào db? –

Trả lời

8

Thông thường, việc tránh sử dụng SQL injection bằng cách sử dụng các câu lệnh SQL được tham số hóa.

Đây là bài viết MSDN mô tả cách bạn thực hiện việc này.

Dưới đây là một số khác article mô tả một số cách bạn có thể ngăn chặn tiêm sql.

5

Ngăn chặn SQL injection được thực hiện ở phía máy chủ, không có gì bạn có thể làm ở phía khách hàng để ngăn chặn nó.

+2

Có, nhưng anh ấy đang sử dụng sqlite3, mà tôi sẽ giả định là địa phương chứ không phải trên một máy chủ. –

+0

@Gordon Worley, trong ngữ cảnh này, tôi sẽ nói phía máy chủ sẽ được bao gồm một số dạng ngôn ngữ như PHP, C#, v.v. mà người dùng cuối không thể vô hiệu hóa/sửa đổi. –

+0

@Gordon Worley -Bạn có nghĩa là anh ấy đang truy cập cơ sở dữ liệu nằm ở phía khách hàng? Con người, đó là một khái niệm. Không bao giờ nghĩ về nó. –

0

Tôi không chắc chắn bạn thuộc loại môi trường nào, nhưng lưu ý rằng vì bản chất của JavaScript và cách nó thường được thực hiện trong trình duyệt, v.v., các cuộc tấn công mã lệnh tương đối dễ dàng. bạn làm ở phía khách hàng có thể là bên bước bởi bất cứ ai nghiêm túc về một cuộc tấn công. Không phải là bạn không nên xác thực, chỉ cần lưu ý rằng bạn cần chú ý đến nơi bạn đang chạy để biết liệu xác nhận có đủ hay không.

Các vấn đề liên quan