10

Bạn có thể xóa bằng trình giải quyết nội dung theo URI hoặc bằng cách chuyển một số tham số đến tham số where.Làm cách nào để sử dụng phương pháp xóa nội dung của Resolver để tiêm an toàn?

Làm cách nào để bạn thực hiện các tham số là SQL Injection Safe?
Có thể sử dụng Báo cáo được chuẩn bị với ContentResolver không?

act.getContentResolver().delete(myuriwithid,null,null); 

act.getContentResolver().delete(mybaseuri," name = '"+this.name"'",null); 

Trả lời

16

Sử dụng thông số vị trí.

public final int delete (Uri url, String where, String[] selectionArgs) 

ví dụ:

ContentResolver cr = ...; 
String where = "nameid=?"; 
String[] args = new String[] { "george" }; 
cr.delete(Stuff.CONTENT_URI, where, args); 
+1

SQL injection này có an toàn không? – Pentium10

+0

Tôi không biết. Nếu bạn không tin tưởng nó, bạn có thể sử dụng SQLiteDatabase.execSQL ("xóa ..") và tự làm cứng truy vấn. –

+0

Bằng cách thử nghiệm của tôi nó * có vẻ * để được SQL injection an toàn, nhưng tôi không thể nhìn thấy nó tài liệu bất cứ nơi nào. – cprcrack