您知道哪些机制可以防止您的网站被匿名垃圾邮件发送者滥用.
例如,假设我有一个人们可以投票的网站.但我不希望有人一路垃圾邮件到顶部.所以我发现(a)创建一个帐户,只允许投票一次,(b)CAPTCHA减少垃圾邮件.您还知道其他哪些方法以及它们有多好?
要求用户阅读扭曲文本的CAPTCHA对于有视力的人来说是好的,但对于那些失明或有其他残疾的人来说是一个可怕的障碍.音频备选方案偶尔可用,但仍然无法帮助那些聋哑人和盲人,并且很难使用屏幕阅读器(已经在向您朗读文字).
存在一对夫妇使用人类解决代表用户,如的CAPTCHA解决方案的WebVisium和Solona,但这些依靠志愿者运营商的可用性(例如,Solona显然只有一个志愿,所以你必须希望他当你需要帮助时醒着).
在我看来,盲人所需的CAPTCHA解决方案的数量非常低 - 我猜想在像英国这样的人口稠密的国家每天不到几百个.这意味着,与想要在短时间内多次执行动作的坏人不同,为盲人提供的CAPTCHA援助服务可以承担相当大的计算资源 - 例如,亚马逊EC2中的计算机云- 来识别所呈现的文本.
我的问题是:假设你不太关心速度,并且你有很多可用的计算机,是否有算法可以让你解决今天常见的文本失真CAPTCHA,比如reCaptcha使用的那些?或者即使有大量的资源和时间,这些问题是否真的难以解决?
几点说明:
在这一点上,我的问题只是理论上的,但显然任何此类服务都必须谨慎控制访问以防止垃圾邮件发送者.也许只有注册的盲人才会被允许使用它.
我知道几年前使用一台算法在一台计算机上运行几秒钟就破坏了旧的Yahoo CAPTCHA.我在问现代CAPTCHA是否可以打破,可能更慢,资源更多.
我假设有一些相当直接的方法将Captcha添加到使用Devise进行身份验证的rails3应用程序,但我找不到任何关于如何将验证码"连接"到注册过程的示例.
我在这里看到了几个主题,但他们讨论的是'为什么'而不是'如何'.
任何尖头都会有所帮助!
我在我的php页面中应用了一个zend验证码,现在我需要添加验证码重新加载按钮.请根据zend给出答案.
我正在构建客户端服务器REST应用程序.客户端基于Angular,而服务器是PHP(无论如何它都不重要).
我想知道在这种情况下是否有任何最佳实践,验证码实施的好例子?Captcha将用于用户注册等.
我不限于任何特定的库,只要求客户端不能调用第三方服务器(第三方服务器上托管的js库或req api密钥等).
谢谢
使用"我不是机器人"Recpatcha的传统方式似乎是<form>在客户端:
<form action="post.php" method="POST">
<div class="g-recaptcha" data-sitekey="6Lc_0f4SAAAAAF9ZA_d7Dxi9qRbPMMNW-tLSvhe6"></div>
<button type="submit">Sign in</button>
</form>
<script src='https://www.google.com/recaptcha/api.js'></script>
Run Code Online (Sandbox Code Playgroud)
然后一些g-recaptcha-response将被发送到服务器.
但是,在我的代码中,我不使用<form>但是使用AJAX调用:
$('#btn-post').click(function(e) {
$.ajax({
type: "POST",
url: "post.php",
data: {
action: 'post',
text: $("#text").val(),
ajaxMode: "true"
},
success: function(data) { },
error: function(data) { }
}); } });
Run Code Online (Sandbox Code Playgroud)
如何g-recaptcha-response通过此解决方案获得答案?
CAPTCHA和RECAPTCHA有什么区别?
选择RECAPTCHA的最佳情况是什么?
我正在业余时间为一个教育机构写一个网站,从我读过的这个地方的统计数据来看,他们似乎有很多残疾学生在那里学习.简而言之,我正在建立一个帐户系统,学生可以登录并接收有关其课程的基本信息,让他们对自己的课程进行评论,以及他们对课程的表现方式.
我对这方面的法律含义不太确定,但我很确定如果您在教育机构工作,那么您的网站可供残障人士使用是法律要求.除了一个问题,代码完全没问题; CAPTCHA.
据我所知,大多数CAPTCHA都是基于图像的,这将使那些使用屏幕阅读器的人感到困难.最重要的是,支持声音读数的设备可能效果不佳,因为在许多建筑物中没有扬声器供用户收听录音.我总是可以使用一个小字段,要求用户将两个数字放在一起但这些对于机器人来说通常太容易攻击.
我可能会在一个小山丘上建造一座山,但对那些对无障碍感兴趣的人来说,这仍然是一个有趣的问题.有谁知道在这种环境中阻止垃圾邮件发送者和用户的好方法?
我正在寻找一种非侵入性的方法来为某些api调用添加验证码过滤器.
我的设置包括两个WebSecurityConfigurerAdapters,每个都有一个过滤器(不是验证码过滤器):
如何在Spring Security内容,公共内部api或外部api调用之前添加过滤器?我不需要SecurityContext,只需要检查请求头中的Captcha,转发到filterChain(普通过滤器)或手动拒绝访问.我尝试在web.xml中声明一个过滤器,但这会破坏使用依赖注入的能力.
这是我的Spring安全配置:
@EnableWebSecurity
public class SpringSecurityConfig {
@Configuration
@Order(1)
@EnableGlobalMethodSecurity(securedEnabled = true)
public static class InternalApiConfigurerAdapter extends WebSecurityConfigurerAdapter {
@Autowired
private Filter filterA;
public InternalApiConfigurerAdapter() {
super(true);
}
@Override
public void configure(WebSecurity web) throws Exception {
web
.ignoring()
.antMatchers("/public/**");
}
@Override
protected void configure(HttpSecurity http) throws Exception {
http
.antMatcher("/iapi/**")
.exceptionHandling().and()
.anonymous().and()
.servletApi().and()
.authorizeRequests()
.anyRequest().authenticated().and()
.addFilterBefore(filterA, (Class<? extends Filter>) UsernamePasswordAuthenticationFilter.class);
}
@Override
@Bean
public …Run Code Online (Sandbox Code Playgroud)