首页 > 程序开发 > 综合编程 > 其他综合 >

web安全基础及Https

2017-02-13

web安全基础及Https:常见的sql注入,万能密码x’ or ‘1,万能用户名 x’ or 1 ,如果我们简单的把用户输入的信息获取到之后不进行处理的话。

web安全基础及Https:常见的sql注入,万能密码x’ or ‘1,万能用户名 x’ or 1#,如果我们简单的把用户输入的信息获取到之后不进行处理的话,上面的sql注入会使用户无需密码和用户名的情况下登录,严重还会导致删除表信息。

$name=$_POST['$name'];
$password=$_POST['$pwd'];
$sql="select * from user_list where 'name'='$name' and pwd=$password";
//当$name=x" or "1的时候,假如不要密码
$sql="select * from user_list where 'name'='x" or "1' and pwd=$password";
//这段sql语句变成这样两段字符串中间为or,这样结果为true,执行起来也是正确的,那么用户可以轻易的进入,密码也是一样

对应其中的办法是密码加密md5

用户名让单引号失效,可以将其转义,通常有2种
php提供的addslashes()函数
mysql扩展提供的mysql_real_escape_string()函数

?p=admin&c=category&a=delete&cat_id=7 or 1这样会全删除
需要将id后面的转为整形:强制转换,(int)变量,使用intval()函数
隐士转换,让其参与运算,用+ 可以+0

$cat_id=$_GET['cat_id']+0;

用户输入是不可信的,有时候用户在商品评论还会输入html标签,如果不对其处理,那么整个页面会受到影响:对html标签进行转义,在php中,有两个函数可以完成这个功能
htmlspecialchars()函数 htmlentities()函数

在javascript里边可以通过encodeURIComponent ()对特殊符号等信息进行编码。

增加sql语句执行日志,和sql相关的sql语句可以把他写到日志文件

HTTPS

1、HTTPS的工作原理
HTTPS在传输数据之前需要客户端(浏览器)与服务端(网站)之间进行一次握手,在握手过程中将确立双方加密传输数据的密码信息。TLS/SSL协议不仅仅是一套加密传输的协议,更是一件经过艺术家精心设计的艺术品,TLS/SSL中使用了非对称加密,对称加密以及HASH算法。握手过程的具体描述如下:
1.浏览器将自己支持的一套加密规则发送给网站。
2.网站从中选出一组加密算法与HASH算法,并将自己的身份信息以证书的形式发回给浏览器。证书里面包含了网站地址,加密公钥,以及证书的颁发机构等信息。
3.浏览器获得网站证书之后浏览器要做以下工作验证证书的合法性.颁发证书的机构是否合法,证书中包含的网站地址是否与正在访问的地址一致等,如果证书受信任,则浏览器栏里面会显示一个小锁头,否则会给出证书不受信的提示。如果证书受信任,或者是用户接受了不受信的证书,浏览器会生成一串随机数的密码,并用证书中提供的公钥加密。使用约定好的HASH算法计算握手消息,并使用生成的随机数对消息进行加密,最后将之前生成的所有信息发送给网站。
4.网站接收浏览器发来的数据之后要做以下的操作:使用自己的私钥将信息解密取出密码,使用密码解密浏览器发来的握手消息,并验证HASH是否与浏览器发来的一致。使用密码加密一段握手消息,发送给浏览器。
5.浏览器解密并计算握手消息的HASH,如果与服务端发来的HASH一致,此时握手过程结束,之后所有的通信数据将由之前浏览器生成的随机密码并利用对称加密算法进行加密
非对称加密算法:RSA,DSA/DSS
对称加密算法:AES,RC4,3DES
HASH算法:MD5,SHA1,SHA256

https协议和http协议的区别:
1. https协议需要到ca申请
2. http传输的信息是明文的,https传输的信息是经过ssl加密
3.http和https使用的是完全不同的连接方式,端口不一样,http端口号80,https端口为443.
4.http连接简单,是无状态的.
5.https协议是有ssl+http协议构建的可进行加密传输//身份认证的网络协议,比http协议安全.


需要到网上申请证书,有公钥和秘钥,公钥是用户需下载,或者操作系统自带下好的,没有证书浏览是不行的.文件上传公钥加密,服务器秘钥解密处理,返回时再加密,浏览器解密
Cmd中输入certmgr.msc查看受信任的根证书,证书,可以看到一些证书
在httpd.conf 开启Include conf/extra/httpd-SSL.conf
LoadModule ssL-module —–
证书有公钥和秘钥以及可能还有证书链文件,将证书复制到Apache/conf/SSL/https文件夹下
修改httpd-SSL.conf文件,大致如下

相关文章
最新文章
热点推荐