参数化sql查询语句
来源:百度知道 编辑:UC知道 时间:2024/06/25 10:36:02
怎样防止sql注入?语句是select * from xinxi where id=XX,怎样防止注入?怎样对这句话进行参数化?
使用ADO.NET的parameter来构造查询语句,运行时会自动检查参数类型是否正确,能够有效地防止SQL injection attack
string = "select * from xinxi where id=@param";
CREATE PROC FindBook
(
@ID int
)
AS
select * from xinxi where id=@ID
1.尽量使用存储过程
2.尽量使用用静态SQL语句,动态SQL容易造成注入
3.尽量对存储过程参数限制大小
4.前台程序过滤掉SQL特殊字符
5.为执行用户,提供最小的权限,防止别人恶意修改数据。
以上简要希望对你有帮助
网上搜一下 ,这方面的很多啊
单从这句话是不能防的,除非根据ID的数据类型,判断提交的XX的数据类型,通常情况下是在调用数据库的时候统一布防