我正试图打击淹没我的Shopify“创建帐户”表格的垃圾邮件机器人。
伪造的用户帐户始终使用相同的相同拼写的随机“名字”和“姓氏”,因此,如果我不能以“名字”和“姓氏”不匹配的条件执行提交, ,我认为这可以解决我的问题。
实现此目的最简单的方法是什么?任何建议将不胜感激。
我具有在Shopify中修改代码的工作知识,但是我不是专业人士。
我已经尝试过Geo-IP阻止,但是该漫游器似乎正在通过自己的(美国)获得访问权限,因此无法正常工作。我还尝试添加一个必填复选框,以在提交之前验证我们的条款是否读懂,但无济于事,该机器人将其打勾并通过。
我在下面添加了我们的customer / register.liquid页面。
{% layout settings.customer_layout %}
<div class="bump">
<section id="blacktop">
<div id="template">
<div id="customer">
<!-- Create Customer -->
<div id="create-customer" data-aos="flip-right">
<h1>Create an Account</h1>
<div class="template_header">
</div>
{% form 'create_customer' %}
{{ form.errors | default_errors }}
<input id="fname" type="text" name="confirm" value="" />
<div class="clearfix large_form">
<label for="first_name" class="login">First Name</label>
<input type="text" value="" name="customer[first_name]" id="first_name" class="large fnamer" size="30" />
</div>
<div class="clearfix large_form">
<label for="last_name" id="lname-reg" class="login">Last Name</label>
<input type="text" value="" name="customer[last_name]" id="last_name" class="large" size="30" />
</div>
<div class="clearfix large_form">
<label for="email" class="login">Email Address</label>
<input type="email" value="" name="customer[email]" id="email" class="large" size="30" />
</div>
<div class="clearfix large_form">
<label for="password" class="login">Password</label>
<input type="password" value="" name="customer[password]" id="password" class="large password" size="30" />
</div>
<input type="hidden" id="customer_tags" name="customer[tags]" value="Illuminati"/>
<div class="action_bottom">
<input id="create-btn" data-callback="onSubmit" class="btn" type="submit" value="Create">
<span class="note"><a href="/account/login">or Login</a></span>
</div>
<input type="hidden" name="return_to" value="/pages/products/#welcome"/>
{% endform %}
</div><!-- /#create-customer -->
</div>
</div>
</section>
<script>
var checker = document.getElementById('fname');
var sendbtn = document.getElementById('create-btn');
checker.onchange = function() {
sendbtn.disabled = !this.checked;
};
</script>
<style type="text/css">
input[name="confirm"]{
display: none;
}
</style>
</div>
希望这可行。我见过很多人在经历相同名称的相同机器人提交时的帖子。新的“客户”从来没有像尝试购买一样对我们的商店做任何其他事情,但这是一个问题,主要是由于假账户数量大,再加上它们通过集成自动导入“ HubSpot”作为“销售线索”。
答案 0 :(得分:0)
您可以使用Java劫持表单上的提交。因此,如果用户单击提交或机器人单击提交,它将触发白痴检查。您可以检查名称字段并确定它们是否合法。如果没有,则什么也不做。如果他们看起来合法,让提交发生并继续。