内容简介:最近某某酒店火了一把,动不动就开始脱裤子,很吓人啊,从自己打造安全的角度出发,我觉得最大问题是程序员参差不齐,还有就是老板压得太狠,功能都实现不完,哪有时间加固网站安全啊!由于网站功能太多,实现太复杂,难免会有sql注入,那么怎么防范?我想到的方法是用户信息和网站数据信息分开处理,也就是放到不同机器的不同数据库中,先看看下面的图,我再根据图来讲解。
前言
上一期给大家讲述了如何打造刀郎安全 PHP 系统【传送门】,本期我们继续。
最近某某酒店火了一把,动不动就开始脱裤子,很吓人啊,从自己打造安全的角度出发,我觉得最大问题是 程序员 参差不齐,还有就是老板压得太狠,功能都实现不完,哪有时间加固网站安全啊!由于网站功能太多,实现太复杂,难免会有 sql 注入,那么怎么防范?
实现原理
我想到的方法是用户信息和网站数据信息分开处理,也就是放到不同机器的不同数据库中,先看看下面的图,我再根据图来讲解。
防范分为二部分
第一部分:用户网站,也就是程序员开发功能和实现的代码部分,也是最容易出现sql注入的部分;
第二部分:授权系统,这里就是我们需要重点保护的地方,由于功能单一,实现部分也简单,做安全比较容易。
建议这二部分分二台机器部署,当有用户注册和登陆的时候,用户网站会跳转到授权系统,进行验证,验证完成后,再跳转到用户网站,这样的好处就是当用户网站出现sql注入或者上传漏洞的时候不会威胁到用户数据库的安全。
实现代码
1.打造授权系统
写了一个简单的例子,一共5个文件(login.html,login.php,reg.html,reg.php,valid_login.php),
login.html,login.php
是登陆部分,login.html是前端表单的实现,login.php是后端接收数据的处理;
reg.html,reg.php
是注册部分,reg.html是前端表单的实现,reg.php是后端接收数据的处理;
valid_login.php
验证用户网站发送过来的授权码是否有效。
1.1 reg.php的实现
接收到用户名的密码后,先比较一下密码是否一致,如果一致,直接用base64进行加密,
加密完成以后,查询一下用户名是否已经存在,不存在插入加密的base64用户名和密码信息,再跳转到授权系统的登陆页面。
1.2 login.php的实现
接收登陆的账号和密码去掉空格用base64加密一次,再到数据库取查询。
如果账号和密码匹配,我们就生成授权码(base64加密一下)并且当前的时间,他们更新到数据库中,同时跳转到用户网站127.0.0.1中去(这里的授权码和用户名是没有加密的)。
1.3 valid_login.php的实现
用接收到用户网站发送过来的用户名和授权码的时候,我们给授权码和用户名用base64加密一下,再到数据库中查询一下,当然这里还有时间字段没有实现,大家自己写代码,如果匹配正常就返回用户的信息,比如用户是否有效,用户名,用户等级。
2.用户网站授权部分实现
接收到授权系统发送过来的授权码和原始用户名后,开始验证授权码和用户名是否有效。
2.1 is_login.php的实现
把用户名和授权码发送到授权系统127.0.0.1(这里我是一台开发机器所以授权系统和用户网站的地址一致)valid_login.php页面中去验证一下,授权系统的valid_login.php会返回一个json,我们判断jison返回valid的值, 就知道用户的合法性 valid=1表示用户有效,valid=0 表示用户无效,sid是用户的等级,管理员还是普通用户。
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
An Introduction to Genetic Algorithms
Melanie Mitchell / MIT Press / 1998-2-6 / USD 45.00
Genetic algorithms have been used in science and engineering as adaptive algorithms for solving practical problems and as computational models of natural evolutionary systems. This brief, accessible i......一起来看看 《An Introduction to Genetic Algorithms》 这本书的介绍吧!