参数化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的数据类型,通常情况下是在调用数据库的时候统一布防