【问题标题】:How to create html file from path entered into url如何从输入到 url 的路径创建 html 文件
【发布时间】:2023-03-03 05:17:21
【问题描述】:

lichess 和 shrib 等网站如何创建特定页面供您个人使用? 例子: http://en.lichess.org/fdnenTEJ -> https://lichess.org/fdnenTEJ
http://shrib.com/uaR3EKNBc8d4OdI -> http://shrib.com/uaR3EKNBc8d4OdI

它们生成与新 html 页面相关联的唯一 id 路径。

如何在节点 js 应用程序中实现这一点?我意识到这个问题非常广泛和模糊,但我想要一个简化版本,说明这样的系统如何工作。

【问题讨论】:

    标签: javascript php html node.js lichess


    【解决方案1】:

    创建一个random string 直到它是唯一的,然后添加到数据库中。匹配请求,以随机字符串为参数,在数据库查询中使用。

    您可能还想将您的数据库 ID 简单地编码为 base62 或 base64。从安全角度来看,这是一个坏主意。

    编辑:

    app.get('/:tokenstring', function(request, response, next) {
      // ...
    });
    

    【讨论】:

    • 为什么将 ID 编码为 base62 或 base64 是个坏主意?
    • 您能说得更详细些吗?我了解如何生成随机字符串以及如何将其添加到 sql 数据库,但是匹配请求是什么意思,以便随机字符串成为参数?
    • @honerlawd 它向客户端泄露了内部逻辑。这不一定是问题,但如果您不小心,它很容易成为问题。有很多例子表明人们可以通过简单地更改 URL 中的 ID 字段来查看用户的私人数据。例如。将bank.com/user/123/transactions 更改为bank.com/user/124/transactions。这永远不可能,但开发人员并不完美,这样的事情会发生。
    • @honerlawd:Sverri 说的。此外,即使您获得了正确的权限,因此人们实际上无法访问124,除非他们有权访问,否则仍然会发生不好的事情。这是来自Reddit 的一个启发性轶事。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-22
    • 2015-11-14
    • 2021-01-26
    • 2020-01-19
    • 2010-09-10
    • 1970-01-01
    相关资源
    最近更新 更多