SQL语句中用Parameters有什么好处
展开全部
安全,可以避免如
C#
string sql="select * from abc where uname='"+uname+"'"
ASP
sql="select * from abc where uname='"&uname&"'"
...
...
中uname表单请求中出现的'或其它字符,引起的绕过登录的问题。
主要是为了安全。
C#
string sql="select * from abc where uname='"+uname+"'"
ASP
sql="select * from abc where uname='"&uname&"'"
...
...
中uname表单请求中出现的'或其它字符,引起的绕过登录的问题。
主要是为了安全。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
SQL语句中使用parameters的好处:
1、提高SQL语句的性能:每个不同的SQL语句在执行前都会进行相应的预解析等操作,这个过程是比较耗时的,而任何值的不同也是SQL不同,比如:SELECT * FROM USER WHERE USER_ID = 1与SELECT * FROM USER WHERE USER_ID = 2是不同的SQL语句。如果将where条件中的USER_ID的值通过参数传递的话,两个SQL内容就一样,数据库系统就只需要进行一次解析就可以了,然后缓存起来,以后可以直接使用,从而大大提高SQL语句的性能。
2、避免因为程序员的考虑不足引起的SQL注入安全问题
比如:以 SELECT * FROM USER WHERE USER_NAME = '页面中的用户名'
如果用户这样书写的话,用户名合法一般是没有什么问题的,但是,如果我输入的用户名为:1' or '0' = '0这样替换上面的内容后,变成了:
SELECT * FROM USER WHERE USER_NAME = '1' or '0' = '0'这样就可以查询出所有的用户数据了,造成信息泄露
1、提高SQL语句的性能:每个不同的SQL语句在执行前都会进行相应的预解析等操作,这个过程是比较耗时的,而任何值的不同也是SQL不同,比如:SELECT * FROM USER WHERE USER_ID = 1与SELECT * FROM USER WHERE USER_ID = 2是不同的SQL语句。如果将where条件中的USER_ID的值通过参数传递的话,两个SQL内容就一样,数据库系统就只需要进行一次解析就可以了,然后缓存起来,以后可以直接使用,从而大大提高SQL语句的性能。
2、避免因为程序员的考虑不足引起的SQL注入安全问题
比如:以 SELECT * FROM USER WHERE USER_NAME = '页面中的用户名'
如果用户这样书写的话,用户名合法一般是没有什么问题的,但是,如果我输入的用户名为:1' or '0' = '0这样替换上面的内容后,变成了:
SELECT * FROM USER WHERE USER_NAME = '1' or '0' = '0'这样就可以查询出所有的用户数据了,造成信息泄露
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询