第二,就是权限。网站一般都规定了什么样的用户可以做什么事。比如版主可以修改所有人的帖子,而你普通用户只能编辑自己的帖子,同样游客只能看大家的帖子。这就是简单的权限。如果少了安全性保证,那么就容易有人跳出权限做他不该做的事情。
简单举个小例子,一个登录模块,让你输入用户名密码。我们会老老实实的输入我们的用户名密码,比如“风落几番”-“password”。如果我们刻意的去绕过登录认证呢?
猜想一下这个sql,单说用户名,开发人员很可能会这样去数据库里对比:
Select count(id) from sys_user where username=‘XXX’
当然可能更复杂,咱们就用这个说。如果我们在输入框里输入一段特殊的字符会如何?
’or‘1=1
这是段神奇的字符,因为这样这个sql就变成:
Select count(id) from sys_user where username=‘’or‘1=1’
好吧,我们就跳过了用户名的验证。。。