服务器/客户端验证?

时间:2009-08-19 14:04:25

标签: c# php client verification

我们正在考虑创建一个程序,该程序向服务器端程序发送POST请求以进行某些处理。我们想考虑某种验证,以确保POST请求不是一个试图压倒我们的系统或其他东西的随机垃圾邮件发送者。我不太了解这些东西,但我认为客户端可能会发送一个date-num和一个“加密”的date-num(没有安全加密,只是使用一些特殊的算法)。然后,服务器将加密date-num并解密客户端加密的date-num。如果加密的date-nums或解密的date-nums不匹配,显然它不是来自我们客户端的请求,因此服务器不会对请求执行操作。

正如我所说,我对此并不了解。我是以正确的方式去做的吗?有没有更好的办法?如果这是一个好的方法,我可能会去寻找“加密”算法? (我发现的大多数算法都是针对安全加密的,只能在同一台机器上解密。我对安全性并不在意 - 我只是在寻找验证。)

非常感谢你的帮助。

PS我不确定这是否重复,因为我真的不知道要搜索什么。我找不到任何其他问题,但这并不意味着什么。

编辑: 为了澄清,服务器代码应尽可能“插入” - 例如如果它可以使用直接的PHP或ASP.NET来完成,而不是使用服务器配置,那就更好了。客户端也一样。请记住,这不一定是安全的,我们只是试图阻止垃圾邮件发送者一百万次发布随机数据。

3 个答案:

答案 0 :(得分:1)

您可以使用ssl和客户端证书,让网络服务器透明地处理它。这样,服务器和客户端都可以(或多或少)确定他们正在与谁交谈 您的网络服务器将是什么? IIS,Apache,......? 如果是apache,请查看httpd 2.2 docs, Client Authentication and Access Control 如果是IIS,请参阅Enabling Client Certificates in IIS 6.0 (IIS 6.0)

答案 1 :(得分:1)

尝试使用cryptographic nonce

  1. 在启动POST的页面上,生成一个随机数,并将其与请求的IP地址和到期时间(15-30分钟?)一起存储在数据库中。
  2. 相同的随机数存储为POST变量。
  3. 在POST时,为了进行处理,必须在到期时间之前成功查找与现时和IP地址匹配。
  4. 结合honeypot captcha,它应该可以很好地防止僵尸程序使系统紧张。

答案 2 :(得分:0)

像这样的问题的通常方法是包含HMAC。它允许通过使用密钥进行完整性检查和发件人身份验证。