`
WaterSugar
  • 浏览: 94096 次
  • 性别: Icon_minigender_1
  • 来自: 宁波
社区版块
存档分类
最新评论

用Rewrite增强ThinkPHP框架中应用程序的安全性

    博客分类:
  • PHP
阅读更多


  用了ThinkPHP框架一段时间后,感觉这是一个挺爽的PHP框架,用着舒服,但了解深入一点之后,感觉在安全性方面还有一点事情要做做。

 

  对于ThinkPHP框架,他有固定的文件目录和一些固定的文件名称,所以,对于一个应用,有很多文件名称和目录是可以猜测出来的,这样我们就可以通过该文件的URL直接访问,绕过了ThinkPHP框架的访问模式,特别是在Tpl目录和Lib目录,这两个地方都是关键地方,如何才能阻止直接对这几个目录进行访问呢?我用到的方法是Apache服务器的Rewrite。

 

  首先,在http.conf配置文件中启用和配置好Rewrite模块。在该文件中增加如下配置信息:

 

  (1)LoadModule rewrite_module Modules/mod_rewrite.so

 

  (2)注意<Directory />配置字段中的AllowOverride和Options,我配置的如下:
  <Directory />
    AllowOverride FileInfo
    Options FollowSymLinks
    Order allow,deny
    Allow from all
  </Directory>

 

  然后,在Lib目录新建一个.htaccess的文件,内容如下:
  RewriteEngine on
  RewriteRule ^(.*)$ /index.php
  将对该目录的所有访问转到项目的启动文件上,从而屏蔽掉对该目录的访问。

 

  对于Tpl目录设置有点不同,因为该目录还存放其他文件,比如图片文件(*.jpg)等,而我们要阻止的仅仅是html文件的访问,所有在default目录下新建的.htaccess文件中的内容如下:
  RewriteEngine on
  RewriteRule ^(.*\.html)$ \index.php [NC]
  将对该目录下所有html文件的访问转到项目的启动文件上,对于其他文件不变。

 

  上面只是我的一些测试方法,对于这两个目录的安全性是不是真有问题,也还得进一步验证,权且当作是对Rewrite的一次练习吧。

分享到:
评论

相关推荐

    ThinkPHP框架里隐蔽index.php_.docx

    本篇文章将探讨如何在ThinkPHP框架中隐藏`index.php`,以提升网站的安全性和用户体验。 首先,我们关注到配置文件的修改。在ThinkPHP 3.2.2版本中,有两个关键的设置与URL处理相关: 1. `'URL_CASE_INSENSITIVE'`...

    thinkphp+mysql中英文伪静态企业网站、完整无BUG源码

    【标题】"thinkphp+mysql中英文伪静态企业网站、完整无BUG源码"涉及到的主要技术包括ThinkPHP框架、MySQL数据库以及伪静态技术,这些在构建一个高效、稳定且易于SEO优化的企业级网站中扮演着关键角色。 ThinkPHP是...

    ThinkPHP 3.1.2 - PHP的开发框架MVC - 含Core,Extend,Example

    | 感谢您使用ThinkPHP开发框架 ^_^ +------------------------------------------------------------------- | 大道至简 开发由我 WE CAN DO IT,JUST THINK +---------------------------------------------------...

    ThinkPhp知识大全(非常详细)

    此外,框架提供的路由解析功能使得URL地址更加优雅和安全,如支持基本GET模式、PATHINFO模式、Rewrite重写模式和兼容模式,这增强了系统的灵活性和可适应性。 ThinkPHP的配置管理也相当灵活,通过核心配置文件`...

    ThinkPHP框架里隐藏index.php

    在使用ThinkPHP框架进行项目开发时,常常需要隐藏项目的入口文件index.php以提高安全性,避免潜在的安全漏洞,并且让URL看起来更加友好。隐藏index.php的步骤涉及到对Web服务器进行配置,以支持URL重写技术,使得...

    thinkphp的学习资料

    ### ThinkPHP 学习资料详解 #### 一、ThinkPHP 概述 ThinkPHP 是一个免费开源的,快速、简单的面向对象的轻量级 PHP 开发框架,它是为了敏捷开发和快速开发而设计的,其目标是实现 PHP 的“DRY”原则(Don't ...

    ThinkPHP3.2.3完全开发手册.docx

    - **作用**:是应用程序的启动文件,负责加载框架的核心文件并启动应用。 - **示例文件**:通常命名为`index.php`。 - **自动生成**: - **工具支持**:提供了命令行工具用于生成常见的应用结构,如控制器、模型...

    thinkPHP框架对接支付宝即时到账接口回调操作示例

    thinkPHP框架作为一款流行的PHP开发框架,广泛应用于Web应用的开发之中。在涉及在线支付系统开发时,对接第三方支付接口是常见的需求,其中支付宝作为国内主要的第三方支付平台之一,其即时到账接口的对接和回调操作...

    ThinkPHP博客源码XPCMS2.0源码

    1、基于ThinkPHP,Jquery,Dwz框架开发而来,完全遵循MVC开发思想,代码精炼规范,系统安全性高,运行效率高。 2、应用中心模块完全基于插件形式设计,可以自由移除,添加模块而不影响到其它模块。 2、程序,设计,...

    使用composer安装使用thinkphp6.0框架问题【视频教程】

    本知识点主要围绕如何使用composer安装thinkphp6.0框架以及遇到的问题解决方法进行详细讲述,分为以下几部分: 1. 安装Composer Composer是PHP的依赖管理工具,可以方便地管理和下载所需的库文件。在安装thinkphp...

    thinkphp资源开发

    此外,通过Composer可以方便地引入第三方库,增强应用的功能。社区提供了大量预封装的组件和插件,大大节省了开发时间。 九、安全与优化 ThinkPHP注重安全,提供了防止SQL注入、XSS攻击等的安全措施。同时,框架内...

    修改apache配置文件去除thinkphp url中的index.php

    ThinkPHP作为一个流行的PHP开发框架,它的URL设计往往包含index.php这样的入口文件路径,这在实际部署中可能不符合美观或安全性需求。因此,去掉URL中的index.php成了许多开发人员的需求。本文将详细介绍如何通过...

    Thinkphp5 如何隐藏入口文件index.php(URL重写)

    ThinkPHP5框架作为PHP开发中广泛使用的MVC架构之一,其如何隐藏入口文件index.php以达到URL重写的目的,对于提升应用的美观度和安全性都有重要意义。本文将详细介绍隐藏ThinkPHP5入口文件index.php的步骤及原理。 ...

    分享团购导航网站源码_团购导航程序商业版PHP源码

    3. **商业版源码**:商业版源码意味着这套团购导航程序是经过授权或售卖的,通常具备完整的功能、良好的性能和安全性。与开源或免费版本相比,商业版源码可能提供更全面的技术支持、更新维护和定制服务。 4. **....

    ThinkPHP 在阿里云上的nginx.config配置实例详解

    在使用ThinkPHP框架开发应用并将应用部署到阿里云服务器时,通常需要对nginx的配置文件nginx.conf进行调整,以确保服务器能正确地处理基于ThinkPHP框架的应用请求。 本篇内容详解了在阿里云上配置nginx以支持...

    基于php之停车场管理系统(源码)

    然而,为了提高开发效率和代码的可维护性,部分功能模块可能采用了ThinkPHP5框架。ThinkPHP5是基于PHP的轻量级MVC(Model-View-Controller)框架,它提供了优雅的API设计,使得开发者能快速构建复杂的Web应用。 ...

    thinkphp隐藏index.php/home并允许访问其他模块的实现方法

    这样做可以提高URL的美观程度,并提升网站的安全性。本文将详细介绍如何在ThinkPHP框架中隐藏index.php以及访问home和wechat两个模块的方法。 首先,需要明确的是,隐藏index.php文件涉及到服务器配置的问题,通常...

    歪酷CMS v2.0 UTF8 RC 20130414.zip

    歪酷CMS基于Thinkphp框架开发,是一款小巧的CMS内容管理系统。   歪酷CMS(WaiKuCMS) v2.0 RC 20130414 更新内容: 1.完善客户端对接歪酷云平台基础架构(底层架构) 2.专题支持在线导入(新功能) 3.会员注册修正...

Global site tag (gtag.js) - Google Analytics