我希望为我的应用添加一些安全性。我的思路是:
我向我的应用添加了一个令牌base64LoginString
,该令牌在我的连接/ JSON请求的标头中发送。
我是否还需要将相同的令牌添加到我的PHP脚本/数据库前连接中,以便在建立与数据库的任何连接之前,它会查看php连接中的令牌是否与我的标题中的令牌匹配Swift脚本?
我对安全性全新,只是想弄清楚从哪里开始。
let username = "user"
let password = "pass"
let loginString = String(format: "%@:%@", username, password)
let loginData = loginString.data(using: String.Encoding.utf8)!
let base64LoginString = loginData.base64EncodedString()
let myUrl = URL(string: "https://www.mydomain.co.uk/MyApp/userLogin.php");
var request = URLRequest(url:myUrl!);
request.httpMethod = "POST"
request.setValue("Basic \(base64LoginString)", forHTTPHeaderField: "Authorization")
request.httpMethod = "POST";
let postString = "email=\(userEmail!)&password=\(userPassword!)";
request.httpBody = postString.data(using: String.Encoding.utf8);
所以使用上面的代码,我希望令牌当前已被发送......
1)这是真的吗?
2)如何在服务器端连接上检查并验证?
3)如果这不正确,那会是更好的方法吗?
答案 0 :(得分:0)
1)这是真的吗?
正在发送令牌,在您的代码中,您正在复制HttpMethod
2)如何在服务器端连接上检查并验证?
如果服务器是Linux,则可以使用tcpdump检查与服务器的条目连接。像这样的东西
tcpdump -i any tcp port 80 -w capture.cap
此命令将捕获80端口上的所有软件包并将其保存到capture.cap文件中。然后使用命令
strings capture.cap
您可以检查测试的输入连接。
如果服务器是Windows,你可以使用Wireshark接近同样的方法,并捕获80个端口数据包。
3)如果这不正确,那会是更好的方法吗?
我建议使用Alamofire,它是一个可以节省大量时间在http请求中的pod。 https://github.com/Alamofire/Alamofire