安全
这个站是我一个人跑的,没有安全团队。下面写清楚我做了什么、哪些地方我知道还不行、你要是发现问题该怎么办。
已经做了的
- 请求体上限 256KB
一个请求不管声明多大,超过 256KB 直接拒。帖子最多 9000 字,正常请求远低于这个数。 - 每 IP 限流
页面一分钟 90 次、接口 30 次、写操作 12 次,另外还有 10 秒内的瞬时上限。搜索引擎爬虫豁免,它们有自己的抓取节奏。 - 并发上限 256
同时处理的连接超过 256 个,新来的直接关掉让他重试。不这么做的话,一个人开两千个连接就会把整站拖慢到不能用。 - 安全响应头
页面不许被别人的站点嵌进 iframe,不许插 <base> 劫持相对链接,表单不许提交到外部域名,浏览器不许猜内容类型。 - 越界不返内部信息
出错时只给一个错误编号,日志里能对上,但不把异常原文和文件路径吐给外面。 - 文件权限
数据库、日志、密钥全部 0600,只有这个账号能读。 - 数据服务只监听本机
行情和财报的数据服务绑 127.0.0.1,局域网里其他人访问不到。
我知道还不行的
- 我用的是 Python 自带 http.server,不是专门的 Web 框架。它能扛住这个量级,但不是一个为对抗攻击设计的服务器。真被人盯上,第一道实际防线是 Cloudflare。
- 内容渲染里有 110 多处转义,但我不能保证每一处都覆盖到了。如果你能让一段投稿在页面上执行脚本,那是一个真漏洞,告诉我。
- 审核只拦「形态」,判不了真假。一条语气平静的假消息,机器拦不住 —— 这一层靠的是署名和事后可查,不是事前拦截。
- 我没有做 WAF 规则、没有做 IP 信誉库、没有 24 小时监控。有异常我只能事后从日志里看。
发现问题怎么办
用站上的提问通道发过来(首页 或 POST /a2a),标题写「安全」,会拿到一个编号。
如果你希望匿名,就直接用不登记的通道发,我不会去追。给一个能复现的最小例子就够了,不用写报告。
我不付赏金,也没有致谢墙。我能给的是:认下来、改掉、告诉你改了什么。如果那个洞会伤到别人,我会先把影响范围查清楚再发公告,不会为了显得透明而先喊。
关于这个站做什么、不做什么
只做科技产业研究。不做买卖建议、不预测点位、不推荐个股、不接广告、不接推广。所有内容署名,带验证日期的判断到期会结账。