加入收藏 | 网站地图 | | RSS | WAP
你好,游客 登录 注册 搜索

ThinkPHP3.1编程开发快速入门教程之:安全

系统安全

[日期:2012-12-04] 作者: 来源: [字体: ]
在开发过程中,除了确保业务逻辑没有安全隐患外,应该充分了解和利用框架内建的安全机制或者工具来确保应用以及服务器的安全性,下面我们总结下ThinkPHP中涉及到的安全机制。

系统安全

系统安全指ThinkPHP可以配合的服务器的安全部署策略。

应用部署建议

首先,我们建议在条件允许的情况下,把框架目录和项目目录都部署在非WEB访问目录下面,ThinkPHP的访问机制完全支持框架和项目的非WEB目录访问,你只需要把入口文件和资源(主要是指JS、样式和图片文件)目录放置于WEB目录下面即可。因此,建议的部署目录如下:

index.php 项目入口文件
 Public/ 项目资源文件目录
    Js/ JS目录
    CSS/ 样式文件目录
    Images/  图像文件目录
 protected/ (受保护的目录,可以部署到非WEB目录或者设置安全访问)
    ThinkPHP/ 框架系统目录
    App/ 项目目录
    Uploads/ 项目上传目录

系统安全设置

如果你已经通过部署策略设置了系统目录安全访问的话,则可以跳过这段。
如果你无法完全做到上述的服务器目录安全保护,也无需担心,ThinkPHP仍然可以通过设置确保你的目录安全。框架的核心文件本身已经做了访问判断,所有核心文件均不能直接在URL中被访问,因此也不用担心直接访问某些文件导致的错误暴露你的服务器路径之类的信息。
对于应用目录,系统则提供了目录安全访问机制,你可以在第一次生成项目目录结构之前,在入口文件中添加:

define('BUILD_DIR_SECURE', true);

运行项目后会自动给项目的相关目录生成目录安全文件(在相关的目录下面生成空白的htm文件),并且可以自定义安全文件的文件名 DIR_SECURE_FILENAME ,默认是index.HTML,如果你想给你们的安全文件定义为default.html可以使用

define('DIR_SECURE_FILENAME', 'default.html');

还可以支持多个安全文件写入,例如你想同时写入index.html和index.htm 两个文件,以满足不同的服务器部署环境,可以这样定义:

define('DIR_SECURE_FILENAME', 'index.html,index.htm');

默认的安全文件只是写入一个空白字符串,如果需要写入其他内容,可以通过DIR_SECURE_CONTENT参数来指定,例如:

define('DIR_SECURE_CONTENT', 'deney Access!');

下面是一个完整的使用目录安全写入的例子

define('BUILD_DIR_SECURE',true);
 define('DIR_SECURE_FILENAME', 'index.html');
 define('DIR_SECURE_CONTENT', 'deney Access!');

除了目录安全之外,还需要保护模板文件不被直接访问,因为有可能会在模板文件中暴露数据表的字段信息。解决办法是配置.htaccess文件(针对Apache服务器,其他服务器参考修改),把以下代码保存在项目的模板目录目录(默认是Tpl)下保存存为.htaccess。

<Files *.html>
  Order Allow,Deny
  Deny from all
 </Files>

如果你的模板文件后缀不是html可以将*.html改成你的模板文件的后缀。

关键词:安全  ThinkPHP 

【内容导航】
第1页:系统安全 第2页:表单安全
第3页:变量安全 第4页:数据安全
第5页:上传安全
收藏 推荐 打印 | 录入:blue1000 | 阅读:
本文评论   查看全部评论 (1)
表情: 姓名: 字数
点评:
       
评论声明
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事/刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款
第 1 楼
* 匿名 发表于 2016/12/24 19:01:18
http://www.blue1000.com/bkhtml/c19/2012-10/70970.htm 拉拉队口号大全 http://www.135995.com/show/18185.html 拉拉队比赛加油口号 http://www.135995.com/show/18184.html