欢迎光临
我们一直在努力

教您如何应用PHP开发出安全的应用程序 (6)-PHP教程,PHP应用

建站超值云服务器,限时71元/月

5、使用具有ssl技术

ssl是英文server side includes的缩写。使用具有ssl(安全套接字协议层)功能的web服务器,可以不用改变一行代码而提高网站的安全性能。ssl使用加密方法来保护web服务器和浏览器之间的信息流。ssl不仅用于加密在互联网上传递的数据流,而且还提供双方身份验证。

这样,你就可以安全地在线购物而不必担心别人矢随你的信用卡的信息。这种特性使得ssl适用于那些交换重要信息的地方,像电子商务和基于web的邮件。

ssl使用公共密钥加密技术,服务器在连接结束时给客户端发送公用密钥用来加密信息,而加密的信息只有服务器用它自己持有的专用密钥才能解开。客户端用公用密钥加密数据,并且发送给服务端自己的密钥,以唯一确定自己,防止在系统两端之间有人冒充服务端或客户端进行欺骗。

加密的http连接用443端口号代替80端口号,以区别于普通的不加密的http。客户端使用加密http连接时会自动使用443端口而不是80端口。这使得服务端更容易作出相应的响应。

在apache服务器下,可以通过直接编辑服务器配置文件或者在需要使用ssi的目录中创建.htaccess文件来启动ssl。登录到服务器,找到配置文件的存放目录,使用文字编辑器打开文件srm.conf,找到以下几行:

# if you want to use server side includes, 
or cgi outside#
scriptaliased directories,
uncomment the following lines.#
addtype text/x-server-parsed-html 
.shtml#addtype application/x-httpd-cgi
.cgi

将以addtype开头的两行并且去掉每一行最前面的”#”符号即可。保存所做的修改,然后再打开文件access.conf。

<directory /usr/local/etc/httpd/htdocs> 
# this may also be "none", 
"all", or any combination of "indexes",
# "includes", or "followsymlinks"
options indexes followsymlinks
</directory>

将其中的options indexes followsymlinks改为:options indexes followsymlinks includes 即可。

例子:如何建立一个仅接受强加密请求的ssl服务器,而又允许对外浏览器使用更强的加密?

这个功能被称为以服务器为网关的加密(server gated cryptography [sgc]), 在readme.globalid文档中有详细说明。简单地说就是:服务器拥有一个由来自verisign的一个特殊的ca证书签发的服务器身份证, 从而在对外浏览器上实现强加密。

其过程如下:

浏览器使用对外密码进行连接,服务器返回其全局id身份证,浏览器校验后在后继http通讯产生之前提升其密码组。

现在的问题是:如何允许这样的提升,而又强制性地使用强加密。换句话说就是:浏览器必须在开始连接时就使用强加密,或者提升倒强加密,但是维持对外密码是不允许的。以下巧妙地解决了这个问题:

httpd.conf:
# 允许在初始握手阶段使用所有的密码,
# 以允许对外服务器通过sgc功能
提升密码组sslciphersuite all:
!adh:rc4+rsa:+high:+medium:
+low:+sslv2:+exp:+enull
<directory /usr/local/apache2/htdocs>#
但是最终会拒绝所有没有提升密码组的
浏览器sslrequire %
{
ssl_cipher_usekeysize
}
>= 128</directory>

赞(0)
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com 特别注意:本站所有转载文章言论不代表本站观点! 本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。未经允许不得转载:IDC资讯中心 » 教您如何应用PHP开发出安全的应用程序 (6)-PHP教程,PHP应用
分享到: 更多 (0)