我正在编写一个PHP脚本来响应来自iPad的GET请求,然后进行适当的数据库查询,返回一个JSON。例如:
http://mydomain.com/index.php?param1=xxx&key=afdS31PsR
这是(key = xxxxxxxxx)一种阻止人们访问我的数据库信息的安全方法吗?我觉得它会被硬编码到脚本中 - 所以它永远不会改变。
更好的方法是散列键值,并与关键字数据库中的散列进行比较。但即使如此,除非iPad通过HTTPS发送密钥和请求,否则它似乎仍然不安全。关于如何做的任何想法?也许有一种很好的方法来使用PHP脚本设置公钥/私钥加密?我对加密和身份验证缺乏经验,所以请耐心等待。
答案 0 :(得分:4)
对于真正精通技术的用户,没有办法发送真正安全的密钥(未加密)。
然而,将其作为GET请求发送通常是一个坏主意,并且对该值进行硬编码是一个更糟糕的想法。
您绝对应该设置“每用户”哈希的数据库,并将哈希键与数据库中存储的哈希值进行比较。如果您必须使用GET,那么就这样吧,但POST将是进行身份验证的方式。
如果您没有使用HTTPS,那么无论您采用哪种方式,无论是谁通过无线方式窥探数据,您都会受到怜悯,但至少POST会使人们对查看URL的人保密