强化 Express API:一次会话中完成 URL 验证、错误处理与测试

发布日期:2026-04-12 10:04:44   浏览量 :16
发布日期:2026-04-12 10:04:44  
16

2026西湖龙井茶官网DTC发售:茶农直供,政府溯源防伪到农户家 

我正在开发 repo-skill-advisor,这是一个面向 GitHub 代码仓库的精准技能推荐引擎。今天,我通过修复三个安全性和可靠性漏洞,强化了 HTTP 层。

问题

该 Express 服务器在未进行任何验证的情况下接受任意 URL。任何字符串——包括 SSRF 攻击载荷、非 GitHub 的 URL 或空字符串——都会被直接传递给扫描引擎。错误处理逻辑与业务代码混杂在一起,并且原始错误信息会泄露给客户端。

我的解决方案

1. URL 验证中间件

function validateGitHubUrl(urlStr) {
  if (!urlStr || typeof urlStr !== 'string') return null;
  try {
    const u = new URL(urlStr);
    if (u.protocol !== 'https:' && u.protocol !== 'http:') return null;
    if (u.hostname !== 'github.com') return null;
    const parts = u.pathname.split('/').filter(Boolean);
    if (parts.length < 2) return null;
    return { owner: parts[0], repo: parts[1].replace(/\.git$/, ''

免责声明:本文内容来自互联网,该文观点不代表本站观点。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,请到页面底部单击反馈,一经查实,本站将立刻删除。

关于我们
热门推荐
合作伙伴
免责声明:本站部分资讯来源于网络,如有侵权请及时联系客服,我们将尽快处理
支持 反馈 订阅 数据
回到顶部