我们如何在iOS应用程序中集成验证码?
我在谷歌上搜索了iOS应用程序中的集成,但没有找到任何相关的方法。甚至我注册并搜索验证码插件是否可用于iOS?我在那里没有找到任何iOS插件。在RND的某个时候,我知道“移动应用程序不需要验证码”,但客户希望在其应用程序中使用验证码,因此,我想知道:-我们如何在iOS应用程序中集成验证码?,ios,iphone,ipad,captcha,recaptcha,Ios,Iphone,Ipad,Captcha,Recaptcha,我在谷歌上搜索了iOS应用程序中的集成,但没有找到任何相关的方法。甚至我注册并搜索验证码插件是否可用于iOS?我在那里没有找到任何iOS插件。在RND的某个时候,我知道“移动应用程序不需要验证码”,但客户希望在其应用程序中使用验证码,因此,我想知道:- 我们是否可以在iOS应用程序/移动应用程序中集成验证码:- 如果是那么整合它的相关方式是什么呢 如果没有那么相关的原因是什么呢 虽然我们在iOS中没有任何验证码API,但即使是reCaptcha也没有为iOS提供任何插件。甚至很多人都建议我,
- 我们是否可以在iOS应用程序/移动应用程序中集成验证码:-
- 如果是那么整合它的相关方式是什么呢
- 如果没有那么相关的原因是什么呢
-(NSInteger)randomint介于:(NSInteger)min和:(NSInteger)max之间
{
返回(NSInteger)(最小值+arc4random_均匀(最大值+1-min));
}
将该号码放在标签上,并要求用户在提供的文本字段中输入相同的号码,如果找到匹配项,则验证码的主体已完成[另一端的用户是人类,是集成验证码的唯一主体],另一方面,我重新生成随机数,并将其再次放在标签上,要求用户在提供的文本字段中输入相同的数字。最终结果是这样的
现在您的想法可能更清楚了,只需将函数“randomIntBetween”的输出分配给显示数字的标签,当用户按下登录按钮时,验证textField(名为:Enter number)中的文本是否与其左侧的标签匹配,如果匹配,则允许用户登录,如果不匹配,则清除文本字段的文本以及标签上的文本,然后通过调用方法“RandomIntBeween:”将新的随机数分配给左侧的标签,并要求用户在输入数字文本字段中输入文本 虽然在某些应用程序中不需要添加验证码,因为应用程序不像Web,因此,根据我的想法,在某些应用程序中不需要附加验证码来防止僵尸程序,但如果需要嵌入验证码。。。 是的,这是可能的方法,请检查以下代码: 以这些出口和变量为例:
NSArray *arrCapElements;
IBOutlet UILabel *Captcha_label;
IBOutlet UITextField *Captcha_field;
IBOutlet UILabel *Status_label;
和iActions
作为:
- (IBAction)Reload_Action:(id)sender;
- (IBAction)Submit_Action:(id)sender;
在情节提要中,为验证码标签选择字体名为Chalkduster 30.0
现在将viewDidLoad()
中的arrCapElements
分配为
arrCapElements = [[NSArray alloc]initWithObjects:@"0",@"1",@"2",@"3",@"4",@"5",@"6",@"7",@"8",@"9",@"a",@"b",@"c",@"d",@"e",@"f",@"g",@"h",@"i",@"j",@"k",@"l",@"m",@"n",@"o",@"p",@"q",@"r",@"s",@"t",@"u",@"v",@"w",@"x",@"y",@"z",@"A",@"B",@"C",@"D",@"E",@"F",@"G",@"H",@"I",@"J",@"K",@"L",@"M",@"N",@"O",@"P",@"Q",@"R",@"S",@"T",@"U",@"V",@"W",@"X",@"Y",@"Z", nil];
加载验证码的代码:
-(void)load_captcha{
@try {
CGFloat hue = ( arc4random() % 256 / 256.0 ); // 0.0 to 1.0
CGFloat saturation = ( arc4random() % 128 / 256.0 ) + 0.5; // 0.5 to 1.0, away from white
CGFloat brightness = ( arc4random() % 128 / 256.0 ) + 0.5; // 0.5 to 1.0, away from black
Captcha_label.backgroundColor = [UIColor colorWithHue:hue saturation:saturation brightness:brightness alpha:1];
//Captcha_label.textColor=[UIColor colorWithHue:hue saturation:saturation brightness:brightness alpha:1];
NSUInteger elmt1,elmt2,elmt3,elmt4,elmt5,elmt6;
elmt1 = arc4random() % [arrCapElements count];
elmt2= arc4random() % [arrCapElements count];
elmt3 = arc4random() % [arrCapElements count];
elmt4 = arc4random() % [arrCapElements count];
elmt5 = arc4random() % [arrCapElements count];
elmt6 = arc4random() % [arrCapElements count];
NSString *Captcha_string = [NSString stringWithFormat:@"%@%@%@%@%@%@",arrCapElements[elmt1-1],arrCapElements[elmt2-1],arrCapElements[elmt3-1],arrCapElements[elmt4-1],arrCapElements[elmt5-1],arrCapElements[elmt6-1]];
//NSLog(@" Captcha String : %@",Captcha_string);
Captcha_label.text = Captcha_string;
}
@catch (NSException *exception) {
NSLog(@"%@",exception);
}
}
重新加载操作:
- (IBAction)Reload_Action:(id)sender {
[self load_captcha];
}
检查验证码是否正确:
- (IBAction)Submit_Action:(id)sender {
NSLog(@"%@ = %@",Captcha_label.text,Captcha_field.text);
if([Captcha_label.text isEqualToString: Captcha_field.text]){
[self.view endEditing:YES];
Status_label.text =@"Success";
Status_label.textColor = [UIColor greenColor];
}else{
Status_label.text =@"Faild";
Status_label.textColor = [UIColor redColor];
}
}
它将显示如下:
帮助摘自:对于我的,我使用以下库:
它将使用一个隐藏的webview来处理该问题向客户端解释为什么它不适用于移动应用程序…@Wain:现在我只能这样做:)创建一个机器人来抓取web(包括web应用程序)和提交表单相对简单。这就是经典验证码解决方案的用武之地。我们不需要在本机应用程序中生成验证码。为什么我们需要验证码来避免垃圾邮件,不幸的是,我听说没有一个机器人会在本机应用程序中发送垃圾邮件。@SaadChaudhry(y):)我是一名渗透测试人员,在大型国际公司的主要项目中有8年的工作经验。我还为他们开发了大型网络和移动应用程序以及后端服务。我在这里告诉大家,“手机应用不需要验证码”的谣言必须停止!客户端应用程序,无论是浏览器中的HTML/JS还是Android上的APK,都与HTTP服务交互,易受攻击的是HTTP服务本身,而不是与之交互的客户端应用程序!我个人已经在主要方面泄露了许多API,因为这不是验证码。它看起来像验证码,但不提供任何保护。应在服务器上验证reCAPTCHA,我在您的回答中看不到它。这不是验证码。它看起来像一个验证码,但没有提供任何保护。这是无用的,如果有人嘲笑你的web服务,我不太确定这个隐藏的webview ReCaptcha解决方案,为了让ReCaptcha工作,它需要跟踪用户的行为,使用这个解决方案,我不知道这将如何发生,因此,我假设挑战将显示99.99%的用户times@WaqlehReCapatcha的理念是保护您的服务器免受垃圾邮件或不规则的点击。因此,即使您将其与隐藏的WV一起使用,它也不会为普通用户/设备显示很多内容。顺便说一句:我尝试过,90%的点击率根本没有出现。很高兴知道它并不总是显示挑战,我没有尝试过这个库,我知道recaptcha用于阻止垃圾邮件和ddos攻击。。。在任何情况下,即使它显示100%的时间,它总比没有一个好。更好的解决方案是使用短信验证,如what telegram和whatsapp等。我认为,短信验证还不够,有时黑客可以使用“在线假号码”进行验证,并模拟相同的查询来攻击您或访问您的数据,使用令牌或您在短信验证后提供的任何东西,,,祝你好运,兄弟。攻击总是有办法的,有志者事竟成,假号码可以被发现,gmail、facebook和其他网站已经可以非常有效地做到这一点,短信验证是行业标准,这并不意味着它是防弹的,什么都不是,您应该始终尝试在用户体验和安全性之间取得平衡,否则您肯定会丢失转换。