【问题标题】:Encrypt part of HTML in PHP and decrypt in JavaScript在 PHP 中加密部分 HTML 并在 JavaScript 中解密
【发布时间】:2009-06-03 17:20:00
【问题描述】:

我正在寻找一种在 PHP 中加密 HTML 表单的方法,以便我可以在浏览器中使用 JavaScript 对其进行解密。这应该对用户透明地工作,并且 JavaScript 输入验证也必须在表单上工作(我知道如何做到这一点)。当用户提交表单时,必须再次加密并使用“AJAX”请求发送到服务器。

编辑:这将用作替代 CAPCHA 系统,因此脚本无法提交表单,除非通过一些巧妙的设计。

编辑 2:我知道这是可以刹车的,一切都可以。汽车锁是可刹车的,但我们仍然使用它们。它并不是要成为终极验证码,而是一个减速带,它将把除了最执着的人之外的所有人都赶走。

谢谢

【问题讨论】:

  • 如果加密脚本可供所有人查看源代码,它会是什么?
  • 我认为您需要向我们提供更多信息。
  • 如果您想阻止窥探者,请像grawity 所说的那样使用ssl。如果你想阻止用户,你不能,任何人都可以使用 firebug,在你解密表单的行上放一个断点,看看它是什么样子

标签: php javascript html ajax encryption


【解决方案1】:

这与 DRM 的问题相同:用户拥有密文。解密是在用户的系统上完成的,因此用户也必须拥有密钥。如果用户同时拥有密钥和密文,那么所有的加密都是没有意义的。

如果您只想从外部窥探者那里安全地传输数据,为什么不直接使用 SSL (HTTPS)?

【讨论】:

  • 你所能希望的就是挫败那些试图逆向工程足够长的时间以至于他们放弃的人。
【解决方案2】:

你可以使用 base64。

<?php
echo base64_encode('html source');
<?

然后您可以使用 jquery 插件:http://plugins.jquery.com/project/base64 或 javascript http://www.webtoolkit.info/javascript-base64.html 对其进行解码。

【讨论】:

  • 这不是“加密”,只是编码。
  • 是的,但是如果密钥是可见的,为什么还要使用一些加密系统呢?我认为他想对机器人或其他东西隐藏 html 代码 :)
  • sasa 是正确的,它是为了让机器人更加努力地收集数据或提交表单(可能带有垃圾邮件)。
  • 但是机器人也可以运行 javascript。那么你是如何让它变得更难的呢?
【解决方案3】:

如果您想使用它来阻止垃圾邮件,我有一些坏消息要告诉您:
The price of humans who'll spam blogs is falling to zero

这是一个现实。在我运行的一个网站上,我设置了一个垃圾邮件通过的验证码系统。除了大约 2 人之外,其他人都来自世界上较贫穷的地区,所以我怀疑有些公司向人们支付垃圾邮件的费用。为了测试这一点,我将某些地区的人创建的帐户设置为仅对他们可见,并且在他们发布一些内容以提醒他们他们的帐户被自动隐藏的事实之后。如果他们是合法用户,我向他们提供了联系我们并投诉的表格。这样做后,我们开始每天收到大约 10 封来自人们对我们隐藏了他们的帐户感到愤怒的电子邮件,但是在检查他们添加的内容后,他们是垃圾邮件发送者!这听起来很疯狂,但不幸的是,现在大部分垃圾邮件似乎都是人类造成的。垃圾邮件发送者知道我们使用验证码,所以他们已经适应了。 :(

验证码正迅速变得无用(如果还没有的话)。添加一个链接以便用户可以报告垃圾邮件,并设置用户被授予管理员权限的业力级别,以便他们的标记导致在没有事先确认的情况下自动隐藏垃圾邮件(就像 stackoverflow 所做的那样)确实是现在阻止垃圾邮件的唯一有效方法。

【讨论】:

    【解决方案4】:

    对于 CAPTCHA,击败脚本的唯一方法是只能由人类完成的操作 - 例如识别图像中的某些内容,或做一些数学运算。

    浏览器完成的所有解密都可以通过自动化脚本轻松完成。

    【讨论】:

      猜你喜欢
      • 2017-05-04
      • 1970-01-01
      • 2013-02-12
      • 1970-01-01
      • 2019-02-13
      • 2016-02-03
      • 2021-11-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多