什么叫做SQL注入,如何防止?请举例说明。

2024-11-07 01:47:57
推荐回答(3个)
回答(1):

以登录为例,假如登录语句是String sql="select count(user.id) from sys_user user where user.user_name='?' and user_pwd = '?' " ,如果参数 user_name 和usre_pwd没有经过加密处理
当user_name为 英文的 ' 则会报sql错误,“引号内的字符串没有正确结束”等等。这样的错误如果给前台捕捉了,那么你的sys_user表就管不住了,当参数user_name or user_pwd 为 ' or 1=1 -- 时 ,拼成的sql语恒成立,像这样的情况就是一种比较简单的注入攻击行为,所 以最好把前台的参数,转换为一种数据库用不到的符号或者字符串(不是相关符号或关键字),比如,将英文的符号转成中文。现在最受欢迎的是将参数加密,至于怎样加密就是题外话了,你可以自己去看下相关贴子,希望对你有些帮助

回答(2):

其实就是过滤危险字符,主要就是单引号',要加强的话就把一些遍历函数也过滤掉,declare,exec之类的。

回答(3):

sa 加密!!