混淆AJAX POST

Bar*_*der 1 ajax jquery post

嘿伙计们,我正在进行AJAX POST调用 - 但是使用FireBug,您可以看到所有细节(允许人们绕过表单).

关于混淆这个问题的任何提示POST(或者这些内容)?

我的ajax电话:

$.ajax({
        type: "POST",
        url: "php/query.php",
        cache: false,
        data: "action=getWordsByLetter&l="+letter,
        success: function(data){
            dataArray = data.split('|');
            $('#words').html('');
            for(var i = 0; i < (dataArray.length - 1); i++) {
                $('#words').append('<li class="w">'+dataArray[i]+'</li>');
            }
        }
    });
Run Code Online (Sandbox Code Playgroud)

我宁愿自己编写代码,而不是依赖于插件:)

Rob*_*nik 7

第一:reCaptcha

如果绕过表单是一个主要问题,您可以始终包含reCaptcha,它应包含在该特定表单的每个帖子中.

我不知道你正在解决的场景,但这将使或多或少不可能制作程序化的POST.

第二:客户端库

另一种方式是建议客户端库.您既可以使用客户端库,也可以轻松自己编写,也可以编写自己的代码来执行类似操作.

第三:动态字段命名

据我所知,你的表格上至少有一个字段.并且您只应在首次请求时处理此表单.你可以做的是使这个字段的名称完全动态:

  1. 服务器端创建表单并为您的字段设置一些动态名称
  2. 存储名称供以后使用或在服务器上加密,并将crypt存储在表单中的隐藏字段中
  3. 服务器获取数据
  4. 如果字段的名称与先前创建的名称(存储服务器端或隐藏名称中提供)匹配,则应处理它,否则只需忽略该请求.

第四:改变DOM结构

如果存在机器人消耗结果的风险,您可以随时以各种方式更改文档的结构(更改容器元素,更改其CSS类名称,ID等).制作一个变更列表(其中几个)和用户排列.您可以或多或少地总是在视觉上对人类实现相同的结果,但是机器将很难阅读它.

标准的东西

  1. 使机器人的过程变慢,但对人类来说效果会很好(5s延迟不应该被人类所知)
  2. IP限制 - 您可以在同一位置每x分钟只允许一个请求 - 这在很大程度上取决于您的表单的性质
  3. 通常过滤掉人类机器人的蜜罐模式.