对$_GET进行过滤,防止自动全局变量
对用户提交的数据进行严格验证
对输出尽量使用htmlspecialchars转意
关于SQL注入问题,比如搜索部分,尽量屏蔽特殊字符:
."'\/*_等,并使用单引号引出关键字。
对于用户验证,使用服务器端Session保存信息会更安全一些
等等……
对用户提交的数据进行严格验证
对输出尽量使用htmlspecialchars转意
关于SQL注入问题,比如搜索部分,尽量屏蔽特殊字符:
."'\/*_等,并使用单引号引出关键字。
对于用户验证,使用服务器端Session保存信息会更安全一些
等等……
1 能用POST的地方不要用GET
2 能用SESSION的地方不要用COOKIE
3 所有进入sql语句的变量都要经过检测,可专门写一个检测函数--(这个看深空的文字)
4 后台登陆窗口不要起大家都猜的到的名字---如index.htm,login.htm
5 注意代码的安全性,意思是,你验证的时候,不要在代码里出现逻辑漏洞,让人可以绕过你的
验证---这个在PHPE里面有一篇文章,找来看一下吧.大概就这么多吧..
<?php//$username,$password是传入的变量
if($username == 'right' && $password == 'pass'){
$login = 'yes'
}
.....
if($login == 'yes'){
//only member can see codes here
}
else{
//normal codes here
}
?>
这段代码是我在一个实实在在的程序中copy下来的.
这段代码咋一看也没什么问题,可是楼主想想,如果用户直接在地址栏里输入xxx.php?right=yes会是什么样子?
因此防止漏洞的产生的最关键一点就是,写代码的时候不能想当然,要多考虑一些其他情况;-)
正确的书写格式和严谨的写法也很重要哦!
这个是语法错误啊
不是漏洞啊对sql的]过滤还是尽量在底层封装的好,免得哪里忘记了
所有变量使用前记得初始化。
关闭register_globals
用eval处理传递过来的数据的时候,要小心小心再小心
还有就是安全和效率(开发效率,运行效率)要平衡,
对用户提交的数据进行严格验证
对输出尽量使用htmlspecialchars转意
关于SQL注入问题,比如搜索部分,尽量屏蔽特殊字符:
."'\/*_等,并使用单引号引出关键字。
对于用户验证,使用服务器端Session保存信息会更安全一些
等等……
说得很好了.自己再去程序中体会吧......多找资料.多看文章.
2、sql语句输入之前进行转义。
3、在权限判断的时候记得先注销权限变量。
4、权限判断到位,不要有真空区域。
5、不允许上传php相关文件,或者进行改名。
6、phpmyadmin记得不要用自动登陆那种。
7、尽可能的所有密码都进行md5加密存储。
8、客户端保存的是用户名密码的内容,而不是是否通过登陆的内容。我觉得至于后台管理界面的文件名,没有什么必要改。因为很多时候在页面链接上都会加入,方便直接进入操作。只是密码要记得用加密后的保存,不要明文。
如楼上所说,sql最好还是进行封装。这样对于所有的语句都会安全一点。或者干脆用那些通用类好过。
权限判断,我觉得写成类可能也会比较好吧。大家觉得呢?
1:尽量用 select count(*) from table where pass='$pass' and name='$name'
而不用select count(*) from table where name=$name and pass=$pass
2:能用$_POST 不用$_GET,用GET的时候 $id=intval($_GET['id'])3:一些危险性的函数尽量避免使用