我正在尝试学习如何保护网络表单。举一个简单的例子,联系表格,姓名,电话,电子邮件。我发现了这个:
但我不知道这是否是正确的方法。它不是共享主机,如果重要的话,我可以完全访问所有内容。我目前与IIS 6和Windows 2000绑定,所以我可能需要使用asp.net 2.0,但如果需要可以使用其他语言(可以在IIS中运行。)
我希望能够填写表格并将其发送电子邮件/发送到适当的下一步(我不知道是这样。)
另外,我是否将端口443用于表单的端口?
编辑:我很清楚。抱歉。我需要整个过程安全。它不仅仅是安全地获取初始形式。一旦输入,我就需要安全地保存表格中的数据。 编辑:我还不够清楚。一旦我从用户获得了我将通过443和SSL获得的数据,我希望通过电子邮件将这些数据通过Internet发送给我。有可能安全地做到这一点吗?或者,最好是拥有我的SSL,获取数据,然后让用户查看该信息(秘书,无论如何),使用相同的SSL套接字,只需使用视图应用程序?感谢任何帮助。谢谢。
答案 0 :(得分:2)
如果您已为页面设置了SSL,那么这就是PITA完成工作的大部分内容。用户可以在端口443上连接,他们输入的所有数据都是安全的。
然而,大多数人没有回答的是通过电子邮件进行的数据传输,其中许多传输无法保证安全 - [我不知道这个参考是多么可信,但值得一读:http://ask-leo.com/just_how_secure_is_email_anyway.html]所以你必须自己使用某种形式的加密来加密数据。也许公钥/私钥加密 - 可能是RSA或类似的。使用公钥加密数据,将其附加到电子邮件并将其邮寄出去。然后,电子邮件接收者使用私钥来解密数据。
如果您正在使用表单的mailto功能,那么您可能需要进行一些编码,这是时候弄脏手了。据我所知[如果我错了请有人纠正我],IIS没有任何能力加密通过电子邮件发送的数据 - 主要是因为接收电子邮件程序可能无法解密数据,这意味着您需要指定加密算法,任何键,附件方法等。
有很多库可以用来处理这个问题。您没有提及是否自己编程,也没有暗示编程语言,但由于您似乎使用的是Microsoft技术,我将指向Microsoft的网站作为参考:
http://msdn.microsoft.com/en-us/library/5e9ft273.aspx
希望这应该指向正确的方向。我的想法是你需要让网站解析输入的数据,使用公钥对其进行加密并将其附加到电子邮件中。
无论是谁正在阅读电子邮件,都需要一个实用程序来使用私钥解密数据。我想你会希望该实用程序自动侦听带有加密附件的传入电子邮件,并自动将它们解密到磁盘,以便每次手动保存这样做的人。或者,您可以使用一些拖放实用程序来拖动附件以查看它。只是一些想法。
答案 1 :(得分:1)
您需要购买SSL证书并配置IIS才能使用该证书,并仅通过SSL连接提供页面。这将意味着从用户浏览器到服务器的所有与该站点的连接都是安全的。
答案 2 :(得分:0)
SSL证书适合您。您不一定需要购买一个,因为它们可以“自签名”,尽管您的用户会看到其中一个窗口弹出告诉他们证书无效。但即使证书无效,它仍将提供与签名证书相同的加密。
如果您使用https协议,则客户端Web浏览器将自动尝试通过端口443连接到Web服务器。
答案 3 :(得分:0)
您的网站需要SSL证书。至于确保您的数据安全,请确保您的表单操作为https://
答案 4 :(得分:0)
保护表单始终是一项危险工作,但您需要做的第一件事就是添加CAPTCHA组件,这样,漏洞扫描程序或机器人无法使用该表单来尝试查找任何可能的漏洞您的代码或您的服务器。通过这种方式,您不会在接收者邮件文件夹中收到表单中的数千封电子邮件。
在尝试使用它之前尝试清理输入数据,这样可以防止SQL注入,XSS等。像ASP.NET这样的某些语言只是默认配置执行此任务,但如果您必须对其进行编码,那么这并不是一项艰巨的任务。有两种技术可以用这两种方法开始,95%的工作都将完成。
如果您需要任何其他建议,请与我们联系。