【问题标题】:Swift - Vapor - replace plus sign with %2B in request parameterSwift - Vapor - 在请求参数中用 %2B 替换加号
【发布时间】:2021-09-23 18:25:28
【问题描述】:

我有一个用 Swift 编写的带有端点验证的 Vapor 服务器端应用程序,它接受密码参数。密码可以包含加号(+),应正确处理。

目前,当密码包含加号时,在我使用“req.query.get”提取密码后,它正在转换为空格。

我考虑做的是用百分比编码对密码进行编码,并用 %2B 替换加号,这样加号就会出现在从邮递员那里收到的密码中,稍后我需要验证。

我的代码:

func routes(_ app: Application) throws {

    app.get("validate") { req -> Int in
        
        do {
            var password = try req.query.get(String.self, at: "password")
            if !isValidPassword(&password) { return 400 }
        } catch {
            return 400
        }
        
        return 200
    }
}

【问题讨论】:

  • 你不应该使用 url 发送密码
  • @LeoDabus 仅供学习
  • 无论如何。如果你想学习,你应该只发送它的哈希值。我还会使用共享密钥来加密数据以发送/接收它。
  • 看看 Crypto 框架
  • @LeoDabus 但现在的重点不是使用密码,而是使用加号验证请求字段

标签: ios swift encoding postman vapor


【解决方案1】:

如果您想将加号编码到 URL 中,客户端应将其发送为 %2B

在 URL 中发送 + 时,客户有责任区分它们

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-01-23
    • 2019-09-17
    • 2016-04-26
    • 2011-12-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多