假设我有一个向公众开放的网站,一些JS生成一个SQL LIKE
模式,并传递给服务器。
服务器使用此表达式而不在SELECT命令中验证它:
SELECT ... WHERE (User has rights to this record) AND (field) LIKE @LikePattern
SQL injection
不会成为问题,因为模式是作为参数传递的。使用'%'作为模式也不是问题,因为AND的左侧限制了找到的记录。 ('%'甚至可能是JS生成的模式之一。)
无效模式可能会导致错误,但只要我的代码准备好处理从SQL客户端库引发的异常,无效模式就不会导致不利情况。 (不应该吗?)
是否存在恶意或不安全的LIKE
模式? (也许是一种可能导致循环或需要不合理处理量或导致意外锁定的模式?)
答案 0 :(得分:1)
不,没有任何LIKE
模式比简单"%"
更“不安全”,这当然会匹配所有有效行。
当然,这是假设您对任何纯文本字段可能存在的SQL注入错误有足够的保护。