前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >一个.git引发的惨案

一个.git引发的惨案

作者头像
思梦php
发布2019-11-06 15:24:05
4650
发布2019-11-06 15:24:05
举报
文章被收录于专栏:PHP实战技术PHP实战技术

最近上线了一个小的程序,架构Linux+Apache+Mysql+PHP(Thinkphp3.2),做系统的时候只是考虑了一些基础的安全比如csrf,sql注入等等,但是没想到栽倒了在git上面,项目使用的是git版本控制器,当你拉取一个项目时候,在你的项目文件夹下面会自动的创建一个.git的隐藏文件,也算是git的驱动文件,有了它你就可以在你的本地使用git进行代码的管理了,之前做项目一直都是Thinkphp3.2,服务器使用的Nginx从未发生过这样的事情(因为Nginx做了验证处理)

比如我们访问一个网站的使用,http://xx/.git/index,之后就会自动下载一个

之后我们可以简单的使用记事本打开一下

额....居然是你git代码管理器里面的目录结构,之后我们通过一个大神在github分享的一个用python写的小程序,我们居然能下载下来整个项目的目录结构

之后通过日志分析,可以得到网站的一些管理员的账号信息,这样你就可以得到了一些网站的关键信息,至此你就可以登录网站后台了

好了,说了这么多,还是告诉大家怎么解决这个问题了,其实一般注意一下就不会犯这么低级的错误,但是也还好及时发现并修改

1、如果你的服务器是apache,那么你将这样操作

(1)修改apache的配置文件(安装目录可能不同,你可以对照修改)

vim /etc/httpd/httpd.conf

1)首先要开启重写,然后

代码语言:javascript
复制
RewriteEngine on
RewriteRule ^.git - [F,L]

这样就ok了,你可以选择

Apache通过配置.htaccess文件禁止访问.git、.svn等目录

或者像我一样修改httpd.conf,因为我做了路由的重定向,所以选择了修改配置文件

(2)重启apache

/usr/local/apache2/bin/apachectl restart

如果你使用了Thinkphp5.0+或者laravel,那么恭喜你,你可以不用担心,因为目录和public不在同一级(配置public的情况下)

2、如果你使用的是Nginx

这样配置了重写,那么路由就根本找不到,所以也就不会出现那个问题了。

编程安全,防不胜防,菜是原罪。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-09-02,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 思梦PHP 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
Elasticsearch Service
腾讯云 Elasticsearch Service(ES)是云端全托管海量数据检索分析服务,拥有高性能自研内核,集成X-Pack。ES 支持通过自治索引、存算分离、集群巡检等特性轻松管理集群,也支持免运维、自动弹性、按需使用的 Serverless 模式。使用 ES 您可以高效构建信息检索、日志分析、运维监控等服务,它独特的向量检索还可助您构建基于语义、图像的AI深度应用。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档