什么叫做SQL注入,如何防止?请举例说明。
3个回答
展开全部
以登录为例,假如登录语句是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语恒成立,像这样的情况就是一种比较简单的注入攻击行为,所 以最好把前台的参数,转换为一种数据库用不到的符号或者字符串(不是相关符号或关键字),比如,将英文的符号转成中文竖氏。现在最受欢迎的是将逗纤族参数加密,至于怎样加密就是题外话了,你可以自己去看下相关贴子,希望对你有些帮助
当user_name为 英文的 ' 则会报sql错误,山弊“引号内的字符串没有正确结束”等等。这样的错误如果给前台捕捉了,那么你的sys_user表就管不住了,当参数user_name or user_pwd 为 ' or 1=1 -- 时 ,拼成的sql语恒成立,像这样的情况就是一种比较简单的注入攻击行为,所 以最好把前台的参数,转换为一种数据库用不到的符号或者字符串(不是相关符号或关键字),比如,将英文的符号转成中文竖氏。现在最受欢迎的是将逗纤族参数加密,至于怎样加密就是题外话了,你可以自己去看下相关贴子,希望对你有些帮助
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询