编写程序强制用户通过SSL访问网站
2012-05-12 22:11
274 查看
有时候,为了网站数据传输的安全,我们希望用户访问网站某些页面或者整个网站的时候,必须通过HTTPS的方式访问,而不允许HTTP明文方式访问,如何正确的配置网站和编写程序以达到一个理想的效果呢?
有些网站开发人员,采用了只开放了HTTPS-443端口,而关闭HTTP-80端口的方式,这样的话,虽然可以造成用户的确无法用HTTP访问网站了,但如果用户通过HTTP访问网站,譬如直接在地址栏输入网址www.xxx.com,则系统缺省就采用了HTTP方式,这时用户就会看到一个网站无法访问的出错信息,而绝大多数用户都不具备专业的网站知识,他们不会认为是自己输入不正确,而是认为网站出错了。那如何妥善解决来自用户HTTP的访问请求呢?
正确的做法,应该是将用户通过HTTP访问网站的请求,重新定位到HTTPS请求上。首先,要将网站配置成HTTP和HTTPS都可以访问的模式,确保80和443端口全部打开,然后在那些必须通过https访问的页面的头部加入一个判断语句,逻辑如下:
If 用户是通过HTTP访问本页面
Then 用HTTPS方式重新访问本页面
以下用ASP和JSP代码举例:
asp代码:
If Request.ServerVariables("HTTPS")="off"
Then response.redirect "https://www.willrey.com" & Request.ServerVariables("PATH_INFO") response.end
End If
jsp代码:
String scheme=request.getScheme();
String url=request.getRequestURI();
if(!"HTTPS".equalsIgnoreCase(scheme))
{
response.sendRedirect("https://www.willrey.com"+url);
return ;
}
对于必须通过HTTPS的页面,只需加入以上语句,即使用户是通过HTTP访问的该页面,系统也会自动将其转变为HTTPS。
有些网站开发人员,采用了只开放了HTTPS-443端口,而关闭HTTP-80端口的方式,这样的话,虽然可以造成用户的确无法用HTTP访问网站了,但如果用户通过HTTP访问网站,譬如直接在地址栏输入网址www.xxx.com,则系统缺省就采用了HTTP方式,这时用户就会看到一个网站无法访问的出错信息,而绝大多数用户都不具备专业的网站知识,他们不会认为是自己输入不正确,而是认为网站出错了。那如何妥善解决来自用户HTTP的访问请求呢?
正确的做法,应该是将用户通过HTTP访问网站的请求,重新定位到HTTPS请求上。首先,要将网站配置成HTTP和HTTPS都可以访问的模式,确保80和443端口全部打开,然后在那些必须通过https访问的页面的头部加入一个判断语句,逻辑如下:
If 用户是通过HTTP访问本页面
Then 用HTTPS方式重新访问本页面
以下用ASP和JSP代码举例:
asp代码:
If Request.ServerVariables("HTTPS")="off"
Then response.redirect "https://www.willrey.com" & Request.ServerVariables("PATH_INFO") response.end
End If
jsp代码:
String scheme=request.getScheme();
String url=request.getRequestURI();
if(!"HTTPS".equalsIgnoreCase(scheme))
{
response.sendRedirect("https://www.willrey.com"+url);
return ;
}
对于必须通过HTTPS的页面,只需加入以上语句,即使用户是通过HTTP访问的该页面,系统也会自动将其转变为HTTPS。
相关文章推荐
- 编写程序强制用户通过SSL访问网站
- 如何强制用户通过HTTPS SSL访问网站
- 如何强制用户通过HTTPS访问网站
- EOS非Portal模式下,如何开发一个用户登录验证程序,用户只有在登录验证通过后,方可访问系统。
- csrf攻击过程 csrf攻击说明 1.用户C打开浏览器,访问受信任网站A,输入用户名和密码请求登录网站A; 2.在用户信息通过验证后,网站A产生Cookie信息并返回给浏览器,此时用户登录网站
- 通过FTP服务端来实现匿名用户和基本用户的访问,可以实现文件上传和下载。通过web网站来浏览内容
- 使用js判断用户访问网站是通过PC端还是移动端
- 黑莓Java开发:程序通过cmwap访问internet网站
- IIS 8.0 发布网站。SSL部署后,将http自动强制转换https访问
- DAU 统计,日活跃用户数 (DAU) 是衡量一个产品表现的重要指标。 需要编写程序,根据给定的某一天的 N 条访问记录,对当天的用户总数 M 进行统计。
- 编写一个组合鼠标事件和键盘事件的程序,该程序模拟一个电子白板,用户用鼠标在白板上画画,并通过键盘在上面写字
- java通过nginx+apache tomcat接收用户头像图片上传,实现网站动态和静态域名访问图片的详细教程
- Ojective C 中编写的ios程序,强制用户在按下home键的时候,退出应用程序
- 【从零开始,从内核驱动驱动到用户空间调用】编写第一个linux驱动,通过端口访问I/O寄存器。
- 如何通过手机客户端Android、Iphone 等访问要求使用客户端证书SSL加密的https网站
- 分享自己编写的一个很简单的网站访问跟踪程序
- 只让用户通过域名访问网站,使用IP不能访问的方法
- 通过request对象获取访问网站用户的 IP 访问者的浏览器名 操作系统名 从哪里转过来 以及 Url 上的所有参数
- 【从零开始,从内核驱动驱动到用户空间调用】编写第一个linux驱动,通过端口访问I/O寄存器。
- windows server 2008通过任务计划程序定时访问网站