我目前正在开发一组PHP脚本,这些脚本充当私有API,仅供某些授权机器使用。 这些脚本直接与MySQL数据库连接,因此我必须确保没有公共的未经授权的访问,例如使脚本成功运行,这是可能的。
我一直在考虑不同的选择,但我决定来这里寻求一些不同的意见。
我正在使用nginx。
API在外部由C#程序(使用WebClient)和其他一些服务器使用,这些服务器可能会更改,因此我避免使用基于IP的方法。
我正在考虑传递一个"键"通过邮寄参数来检查匹配
if($_POST['key'] == 'key')
可能有更好的选择,您的想法是什么?
答案 0 :(得分:1)
您可以使用客户端证书配置TLS授权:
灵活安全。
这是一个教程:http://blog.nategood.com/client-side-certificate-authentication-in-ngi
答案 1 :(得分:0)
我通常使用你写的关键方法,但我绝对相信深度防御方法。所以我会添加一些服务器级保护,检查出nginx访问控制方法。也许是这样的:
否认:全部 允许IP:127.0.0.1答案 2 :(得分:0)
我会使用公钥/私钥验证,或者为每个客户端使用用户名和密码/ api密钥。只有其他选项IMO才会使用LDAP或其他目录身份验证,这在大多数情况下可能并不理想。
答案 3 :(得分:0)
您可以使用基本的HTTP身份验证,但此方法不是100%安全,很容易受到中间人攻击