我有一个包含身份验证系统(登录名和密码)的应用程序(在Delphi中制作)。
此系统使用PHP,应用程序使用HTTP GET 方法从PHP获取结果。 如果登录和密码正确,系统将返回“OK”,如果不正确,则返回“NO”。
喜欢这个......
procedure Check;
var
x: string;
begin
x:=Get('www.mywebsite.com/auth.php?user=xxxxxx&pass=zzzzzz');
if x='OK' then
UnlockFeatures
else
MessageBox(0,'You're not VIP','Error',0);
end;
嗯,它运行正常,但使用嗅探器,数据包编辑器或代理来绕过这个系统非常容易。
所以,我希望得到一些每次都有变化的信息(在PHP中),并且可以通过我的应用程序获得相同的信息。
我该怎么办?
我不需要代码。只是提示,建议,请...
...谢谢
答案 0 :(得分:2)
我不熟悉Delphi(looooooong很久以前......),但就php和安全性而言:
post
代替get
(如果可能,还会使用https
)答案 1 :(得分:2)
一般来说,我建议你不要试图超越每个人并发明全新的自行车 - 你有99%的失败,有一些愚蠢的错误让你的方法完全不安全。有许多优先级,如DVD加密或Win95安全性。您最好尝试一些行业认可的机制,多年来一直在测试安全性,应该有Delphi和PHP的现成实现。很少是
考虑您的优先事项并做出您的选择。 您是否能够在以后的一个关键转弯中切换所有身份验证层,完全不关心与非更新客户端的向后兼容性,然后您可以选择最简单的一个,并且只在以后需要时进行增强。如果您的用户在升级时很懒,那么您最好从初学者那里选择最安全的方法,因为以后没有实用的方法来禁用不安全的实现。