YGF's Blog 想搞艺术的Coder一枚~
https://ygf.name
禁止http.FileServer列目录

之前的文章说到用golang开发静态资源服务器
现在遇到个问题,访问目录是会列目录。为了安全需要禁止这个功能。
先看资源服务器代码

  1. package main
  2. import (
  3. "net/http"
  4. )
  5. func main() {
  6. http.Handle("/static", http.StripPrefix("/static", http.FileServer(http.Dir("./static"))))
  7. http.ListenAndServe("127.0.0.1:8080",nil)
  8. }
  1. go run server.go

运行之后打开连接http://127.0.0.1:8080/static
发现已经列目录


这时候我们需要自己实现http.FileSystem禁止列目录
代码如下

  1. package main
  2. import (
  3. "net/http"
  4. "errors"
  5. "os"
  6. )
  7. type disableDirFileSystem struct {
  8. fs http.FileSystem
  9. }
  10. func (fs disableDirFileSystem) Open(name string )(http.File,error) {
  11. f,err := fs.fs.Open(name)
  12. if err != nil {
  13. return nil,err
  14. }
  15. return disableDirFile{File:f},nil
  16. }
  17. type disableDirFile struct {
  18. http.File
  19. }
  20. func (d disableDirFile) Stat()(os.FileInfo,error) {
  21. s,err := d.File.Stat()
  22. if err != nil {
  23. return nil,err
  24. }
  25. if s.IsDir() {
  26. // 如果是目录则不显示
  27. return nil,errors.New("disable")
  28. }
  29. return s,err
  30. }
  31. func main() {
  32. f := disableDirFileSystem{
  33. fs: http.Dir("./static"),
  34. }
  35. http.Handle("/static", http.StripPrefix("/static", http.FileServer(f)))
  36. http.ListenAndServe("127.0.0.1:8080",nil)
  37. }

这时候再访问目录已经不能列目录了

the end

Go http.FileServer 404的原因

最近使用golang做静态资源路由时遇到404的问题,
代码如下

  1. http.Handle("/static", http.FileServer(http.Dir("./static")))

这时候访问http://127.0.0.1/static/jquery.js 出现404错误,
原来需要去掉static前缀才能正常访问。

  1. http.Handle("/static", http.StripPrefix("/static", http.FileServer(http.Dir("./static"))))
英雄召集令

原红客联盟官方网站cnhonker.com已正式改名为红盟安全,为中国红客联盟(HUC)创始人Lion创建的广州红盟安全技术有限公司的官方网站,更多功能正在准备中。

广州红盟安全技术有限公司专注于网络攻防对抗领域,致力于保护用户数据及隐私安全。

红盟安全旗下的红盟学院,专注于网络攻防对抗领域的高级网络安全人才培养,致力于成为中国网络战场的生力军,为保护中国的网络空间安全贡献力量。

欢迎曾经的成员、各位技术大牛们加盟红盟安全。

红盟二十周年了,这只是一个新的开始

以下文章来源于安全江湖 ,作者林勇Lion

“红盟安全,新的红盟。”

红客联盟二十周年纪念

不知不觉间,红客联盟伴随我至今已有了20个年头,仿佛上一次2011年在cnhonker.com放出十周年纪念页的时候就在昨天。我花了一个晚上的时间,手写了网页和制作了新的网站图标,把红盟的纪念页放了上去,算是重新把cnhonker.com这个站开起来了。2000-2020 红客联盟成立二十周年纪念活动正在策划中,欢迎大家提出宝贵建议。预告一下,会有红盟20周年纪念品哦。

红客联盟(HUC)成立于2000年12月1日,所使用的cnhonker.com域名注册于2000年11月2日,我在朋友圈说要写篇文章发公众号纪念一下。确实是有些话憋了许久,想说一说。

原文链接

博客再出发~初步完成了第一个版本

博客再出发~

以前博客是wordpress,运行在新浪SAE上面,后面云豆停止赠送后博客就关了,再后来域名 http://www.cnygf.net 也过期,一直说要再弄个博客玩玩。

欢迎加个友链
https://ygf.name YGF的博客

目前自己在学习go语言,所以用golang + mysql撸了个博客程序叫go-blog,完成度高的话会放到 github

ps:要后台直接私聊要密码,勿社~

早期文章