转载自网络
这次的教程内容贴近我擅长的技术方向:安全的contact forms。
就像我在前一篇教程中提到的那样,一个最普通的contact forms可以帮助访客同你进行通信来往而不需要暴露你的电子邮件地址给那些可恶的垃圾邮件制造者们。
但如果spammer们已经盯上你,没有什么比一个不安全的contact foms更糟糕的了。想象一下你的网络空间提供商发给你一封措辞强烈的电子邮件,通知说:他们发现你的网站发送了大批量的性药广告以及其他垃圾邮件,另外,直到你停止这种行为之前,你的网站都将处于离线状态–谢谢!
那么,今天我要在这篇教程里告诉大家的是一种在任何contact forms上添加一个额外安全层的简单方法-即使你没有使用我提供的超级安全、超级灵活的Ultimate Form Mail。
当前状况
你意识到spammer们已经通过远程探测技术发现了你的contact forms的弱点,而你希望他们走开。
难点
你不想使用CAPTCHA(Completely Automated Public Turing Test to Tell Computers and Humans Apart),因为你明白,让你的访客先去阅读那些歪七扭八的字母数字才能发送消息只能抑制他们想要互动的欲望,而不是促进它。(数字验证的缺陷)
关键点:你希望那些坏家伙们堵车到天黑,同时希望那些好孩子们一条大道通罗马。
解决方案
你将学会在页面加载的时候使用jQuery来给你的contact forms添加一些隐藏的标签信息。当窗体信息被提交到服务器端的时候,你可以用一些简单的php代码实现如下的步骤:
隐藏的标签被识别出来 隐藏标签的信息与你的网站访客下载到浏览器上的cookie里的某项标志相一致 隐藏标签的有效时间还未过期 换句话说,你的访客们只有在一段有限的时间内才可以填写窗体并进行发送。如果一个spammer尝试通过远程调用来提交窗体信息到你的服务器,他们将会发现自己踢到了一块又厚又硬的铁板,不付出点代价休想通过。
我将要告诉你的这种方法是从一位非常聪明的同事Chris Shiflett提供的蓝本基础上修改而成的。他是位专业的安全专家,对php程序员经常遇到的安全问题了如指掌(我怎么感觉他又要忍不住提到他的Ultimate Form Mail 了~~汗)。
教程
基于上次那篇《斑马线表格轻松制作》的反响良好,我决定再次制作一次类似的“手把手图文教程”。虽然要花费些时间,但很值得这么做。
手把手教程
DEMO
源代码
银弹?1)
银弹是软件领域的说法,意为解决一切问题的方法。这个来源于欧洲的传说,说是只有银弹可以消灭狼人。
“那么,现在我的窗体就是100%安全的,可以假设任何免费的cntact forms程序,然后高枕无忧了?”
呃。。。非也。
这种安全模式基于一个关键的假定:Spammer们总是会拿软柿子捏,浪费时间去解决一个狡猾的对手对他们来说就是浪费金钱。
现在, 好好听着,我的朋友们:
这个技术,尽管相当健壮,但仍然不是解决目前脆弱的窗体处理程序问题的灵丹妙药。
我的这些安全建议的目的是为了让spammer们知难而退。小偷们入室之前总会进行仔细踩点,他们只对那些可以用最小代价获取最大利益的房间感兴趣。
换句话说,如果在他们动手之前有99%的机会挡住他们的试探,而且实现起来相当容易,为什么不试一试呢?这才是此项技术要实现的目标。
但这还是治标不治本,不能解决所有问题。
分享到:
相关推荐
赠送jar包:captcha-1.3.0.jar; 赠送原API文档:captcha-1.3.0-javadoc.jar; 赠送源代码:captcha-1.3.0-sources.jar; 赠送Maven依赖信息文件:captcha-1.3.0.pom; 包含翻译后的API文档:captcha-1.3.0-javadoc-...
字母+数字验证码jar包
赠送jar包:captcha-core-2.2.1.jar; 赠送原API文档:captcha-core-2.2.1-javadoc.jar; 赠送源代码:captcha-core-2.2.1-sources.jar; 赠送Maven依赖信息文件:captcha-core-2.2.1.pom; 包含翻译后的API文档:...
// Change configuration...//$captcha->wordsFile = null; // Disable dictionary words//$captcha->wordsFile = 'words/es.txt'; // Enable spanish words//$captcha->session_var = 'secretword'; // Change ...
集成aj-captcha实现滑块验证码.zip
vue3-captcha(vue3行为验证码)
Burp suite图形验证码插件 注:需要配合验证码识别接口可用,本插件仅提供转发功能,不提供验证码识别
行为验证码(滑动拼图、点选文字),前后端(java)交互,包含vue/h5/Android/IOS/flutter/uni-app/react/php/微信小程序的源码和实现
赠送jar包:captcha-core-2.2.1.jar; 赠送原API文档:captcha-core-2.2.1-javadoc.jar; 赠送源代码:captcha-core-2.2.1-sources.jar; 赠送Maven依赖信息文件:captcha-core-2.2.1.pom; 包含翻译后的API文档:...
// Disable dictionary words //$captcha->wordsFile = 'words/es.txt'; // Enable spanish words //$captcha->session_var = 'secretword'; // Change session variable $captcha->CreateImage();
滑动验证码,Java后端。。可以在vue使用,iOS,安卓,小程序使用。后端使用Java编写。maven工程,下载就可以使用
验证码生成插件
前端开源库-svg-captchasvg captcha,在node.js或express.js中生成svg captcha
Laravel开发-laravel-math-captcha 用于Laravel表单验证的简单数学验证码。
echo '$imgLoc.'" alt="This is a captcha-picture. It is used to prevent mass-access by robots." title=""> '."\n"; echo '<form name="captcha" action="'.$_SERVER['PHP_SELF'].'" method="POST">'."\n";...
//$captcha->wordsFile = null; // Disable dictionary words //$captcha->wordsFile = 'words/es.txt'; // Enable spanish words //$captcha->session_var = 'secretword'; // Change session variable $...
赠送jar包:captcha-1.3.0.jar; 赠送原API文档:captcha-1.3.0-javadoc.jar; 赠送源代码:captcha-1.3.0-sources.jar; 赠送Maven依赖信息文件:captcha-1.3.0.pom; 包含翻译后的API文档:captcha-1.3.0-javadoc-...
项目封装了比较通用的**校验、训练、验证、识别、API模块**,极大的减少了识别字符型验证码花费的时间和精力 1.1 关于验证码识别验证码识别大多是爬虫会遇到的问题,也可以作为图像识别的入门案例。目前通常使用...
no-captcha, Laravel 没有 CAPTCHA reCAPTCHA 没有验证码 reCAPTCHA 对于 Laravel 4,使用 v1 分支。安装composer require anhskohbo/no-captcha Laravel 5设置注意这
Django Rest验证码django-simple-captcha轻量级版本,可与django-rest-framework 。特征速度:使用cache代替数据库安全性:用于生成密钥和图像的联合方法。 (一个键不能生成很多图像) 简单:只需一个rest api...