首页
学习
活动
专区
圈层
工具
发布

从安全漏洞看印度国家银行APP为何“技术落后10年”

当你在安卓上安装自签名证书时,安卓会一直提醒你“第三方证书已被添加到您的设备的信任库”,但是因为成本的关系你有时候不得不这么做(在企业环境或者测试环境中),再加上测试的过程中会一直看到讨厌的提醒信息“您的通信可能被监控...我尝试通过Burp添加一个自签名证书用来抓取请求/响应中的明文数据,结果发现很成功的就抓到数据了,这说明app没有使用“证书锁定”。...你可以看到我构造了一个请求,请求中用到的是我的用户ID和我的MTPIN,但是发送者账户(6254)却不是我的。(= = 作者的图挂了,各位脑补下吧!)...8天后,我收到了该银行的一个非官方的确认信息(该银行的一个中层经理)说他们正在调查这个问题。大概第9/10天左右,开发该app的外包公司的副总裁访问了我的linkedIn主页。...我回信询问漏洞何时会被修复以及是否会为此漏洞提供赏金,鉴于这家银行有将近250亿美元的存款(2015年的数据),为什么不尝试着要点赏金呢,但是就如预期的一样,他们没有再回复任何信息了。

1.4K70
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Swift:静态工厂方法

    同样,这是许多开发人员选择子类化并创建内置视图类的自定义变体的地方,就像这里的UILabel一样,我们将使用它来渲染标题: class TitleLabel: UILabel { override...尽管子类化是一项重要的语言功能,即使在面向协议的编程时代,也很容易将自定义设置与自定义行为混淆。我们并没有在上面的UILabel中真正添加任何新行为,我们只是在设置一个实例。...因此,问题是子类是否真的适合此处的工作? 相反,让我们尝试使用静态工厂方法来实现相同的目的。...我们要做的是在 UILabel 上添加一个扩展,使我们能够从上面创建与 TitleLabel完全相同设置的新实例,如下所示: extension UILabel { static func makeForTitle...虽然我们可能无法完全摆脱视图控制器(或与此相关的视图)的子类化,但是某些类型的视图控制器可以从工厂方法中受益。

    3.3K10

    编程不需要天赋和激情

    这种根深蒂固的成见不仅是完全错误的,而且还是有害的——但是许多成功的程序员都赞同这个观点。 ?...我开始慌了,我担心他们会知道我是个骗子,我是滥竽充数的。突然我意识到,我已经忘了添加‘.send()’了——我添加并刷新之后,页面出现了,然后团队成员纷纷赞扬说‘哦,真酷!’。...在他的Twitter个人资料中,他形容自己是一个“计算机loser”。他最火的Twitter帖子中他把自己描述为“公司中最糟糕的工程师,但却是第三酷的”。这种态度和我们对刻板的程序员的看法完全相反。...我一直在寻找另一种编程语言,另一种……不一样的东西,在某种程度上能够让我觉得正在使用的语言不那么无聊的东西。 我是绝对不相信我会成为一个程序员的,当我用PHP和Java工作的时候。...但是我只希望对那些开始编程之路的初学者,正在怀疑他们是否适合是否合格的程序员说:多尝试一些不同的学习方式,不要担心什么资格,不要轻信那些毫无根据的故事,也不要改变你学习编程的心态。

    63260

    编程不需要天赋和激情

    这种根深蒂固的成见不仅是完全错误的,而且还是有害的——但是许多成功的程序员都赞同这个观点。 ?...我开始慌了,我担心他们会知道我是个骗子,我是滥竽充数的。突然我意识到,我已经忘了添加‘.send()’了——我添加并刷新之后,页面出现了,然后团队成员纷纷赞扬说‘哦,真酷!’。...在他的Twitter个人资料中,他形容自己是一个“计算机loser”。他最火的Twitter帖子中他把自己描述为“公司中最糟糕的工程师,但却是第三酷的”。这种态度和我们对刻板的程序员的看法完全相反。...我一直在寻找另一种编程语言,另一种……不一样的东西,在某种程度上能够让我觉得正在使用的语言不那么无聊的东西。 我是绝对不相信我会成为一个程序员的,当我用PHP和Java工作的时候。...但是我只希望对那些开始编程之路的初学者,正在怀疑他们是否适合是否合格的程序员说:多尝试一些不同的学习方式,不要担心什么资格,不要轻信那些毫无根据的故事,也不要改变你学习编程的心态。

    55920

    iOS 9 Storyboard 教程(一下)

    ---- Note: 在这个app,你只用到了一个原型cell,但如果你的table需要显示不同的cell,那么你可以很简单的在storyboard中添加额外的原型cell.你也可以复制已经存在的cell...样式也是可以的,但是对于这个app来说,如果你想要在cell的右手边添加一张玩家评级(1–5星)的图片.那就需要有一个(图片视图)image view,就目前来看,标准的cell样式是不支持的,所以你必须要自定义设计一个...使用cell的子类 Table view已经非常好了,但是我不是使用tag来访问标签和其他cell子视图的粉丝.如果你能通过连线(outlet)连接这些标签(label),然后使用对应的属性那么它将更干净...添加PlayerCell类的属性,就好像下面的类定义一样: @IBOutlet weak var gameLabel: UILabel!...运行app并且尝试做一下.它依旧会和之前一样,但是在屏幕下面,它使用的是你自己的table view cell的子类!你可以在这里下载所有的源代码.

    3.9K20

    iOS 远程推送概念相关准备工作代码实现:(前提:确保bundleID和网站的配置一样)AppDelegate中的全部代码

    创建调试用的推送证书流程跟创建普通调试证书一样, 多了一个选择BundlD ID的过程 (如果之前配置的是通配符Bundld ID ,则无法使用Push功能) 1.选择推送证书 ?...但是在Xcode7中这个选项打开和关闭的Token值不一样!打开的时候才是真正的Token值! 注意在Xcode 7 之后必须打开推送的选项,否则可能会导致请求的token不一样! ?...点击推送 (4)推送成功程序右上角就会有一个1的角标 ? 推送成功! 4.接收到通知后程序回调的代理方法 注意:要考虑三种情况,后台、前台、退出程序。...处理警告 (3)还有警告,需要添加一个值在info.plist中,可用到界面把后台模式更改一下 ? 处理警告 ?...label表示接收到通知 UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 375, 200)]; label.text

    2.4K100

    编程不需要天赋和激情

    这种根深蒂固的成见不仅是完全错误的,而且还是有害的——但是许多成功的程序员都赞同这个观点。 ?...我开始慌了,我担心他们会知道我是个骗子,我是滥竽充数的。突然我意识到,我已经忘了添加‘.send()’了——我添加并刷新之后,页面出现了,然后团队成员纷纷赞扬说‘哦,真酷!’。...在他的Twitter个人资料中,他形容自己是一个“计算机loser”。他最火的Twitter帖子中他把自己描述为“公司中最糟糕的工程师,但却是第三酷的”。这种态度和我们对刻板的程序员的看法完全相反。...我一直在寻找另一种编程语言,另一种……不一样的东西,在某种程度上能够让我觉得正在使用的语言不那么无聊的东西。 我是绝对不相信我会成为一个程序员的,当我用PHP和Java工作的时候。...但是我只希望对那些开始编程之路的初学者,正在怀疑他们是否适合是否合格的程序员说:多尝试一些不同的学习方式,不要担心什么资格,不要轻信那些毫无根据的故事,也不要改变你学习编程的心态。

    1.2K90

    Git 版本控制的核心概念

    例如就在前几天,我大约只用了 20 分钟就解决了一个已经投入生产环境的重大问题(完全是我的错)。如果没有 Git,这可能需要几天的时间来修复。...这就像是在狂野的西部一样。?+? Git解决了这个问题? 也许你已经在自己的项目中增加了一个新功能,破坏了以前工作得很好的东西,但不知道在哪里找到错误或如何解决它。...你已经在编辑器中关闭了文件,因此就不能再使用“撤消”了。 Git解决了这个问题? 好的,但是 Git 是怎样解决这些问题的? Git 的核心功能是在文件中创建保存点。...在底层它会创建一个新的隐藏 .git 文件夹,其中的所有内容都需要跟踪你的更改。你几乎不需要进入这个文件夹,除非你正在设置一些高级的东西。...现在这个令人敬畏的新项目正在进行中,让我们创建一个保存点。 git add git add 命令是把东西放在临时区域的方式。就像打印我们拍摄的照片一样,然后将它们粘贴在我们的相册页面中。

    1.4K50

    在线等,挺急的!

    作为一个 iOS开发爱好者,这是我很感兴趣的一个话题.最近也确实有了些许灵感,也确实取得了一点小成果,和大家分享一下.欢迎感兴趣的iOS爱好者能和我一起研究讨论!...我想我对编程本身确实是感兴趣的,但是整天浪费时间在 UI上,真的感觉有点虚度光阴.所以说,在本不充裕的空闲里,我一直在思考的一个命题就是: 如何实现 UI 的自动化与独立化....尽管作为一名iOS开发人员,我依然对苹果公司提供的开发技术及其发展方向持谨慎和保守态度.前一段时间,尝试使用 Xib来布局视图,遇到一些坑,但是熟悉之后,也确实比原来单纯基于绝对位置的纯代码布局更灵活些...,也更快捷些.在此期间,我研究的一个重要话题就是如何实现Xib之间的嵌套复用,即在一个Xib上如何直接嵌入另一个Xib.乍听起来很简单,但是在亲身实践之后,才发现其难度.我不是来吐槽的,个中曲折不再一一赘述...此策略已经在我们的项目中试用了一段时间,也已经填了些坑,多次优化,感兴趣的可以直接拿过去用.但是,基于XIB的视图模块化,终究还是需要手动的参与,对工作效率的提升也似乎达到了一个极限:因为它终究需要人工深度参与

    2K60

    视觉效果 -- iOS Core Animation 系列三

    shadowRadius属性控制着阴影的模糊度,当值为0的时候,阴影和视图一样有一个明显的边界,值越大,边界线看起来就会越模糊。...但是在同一个图层缺又存在这个问题,所以这看起来很简单的效果,我们需要用到两个图层,一个图层做maskToBounds裁剪,一个图层画阴影。...shadowPath就是做这个事的,它是一个CGPathRef类型(指向CGPath的指针)。 下图展示了同意寄宿图不同阴影的设定: ?...这显示的效果有点怪。右边的设置了alpha为0.5。但是在UILabel的位置好像不是0.5的效果。这是因为透明度的混合叠加造成的。实际上右侧中间的透明度是0.75。...但是如果图层包含一个同样显示50%透明的子图层时,你所看到的视图,50%来自子视图,25%来了图层本身的颜色,另外的25%则来自背景色。 如果想保持透明度一直。

    1.7K30

    深入详解iOS适配技术

    前言 iPhone自诞生以来,随着其屏幕尺寸不断的多样化,屏幕适配的技术一直在发展更新。...iOS开发者完全可以用纯代码的方式把一个控件的frame写死。 后来apple公司推出了4.0英寸的iPhone5和iPhone5S,所以,针对于不同尺寸的屏幕,再把控件的frame写死就不可取了。...3.2约束冲突 >约束可以重复添加,但容易引发约束冲突 >例如先约束某个子控件A的高度等于100,然后又给这个子控件A添加了一个高度约束, 约束高度等200, 那么这两个约束就产生了冲突,控件A不知道他自己的高度是...当然,我们也可以只给UILabel设置x、y。但必须要保证UILabel的text属性有内容,否则UILabel显示不出来(这是初学者经常犯的错误)。...上面只是验证了会出现在5.5英寸的横屏状态的iPhone上,但是并没有验证“只会”这个词语。请看下图: ?

    9.6K70

    iOS的MVC框架之控制层的构建(下)

    在这里面我想强调一点的是虽然控制器中拥有了一个view的根视图属性,但是控制器的生命周期一般要比根视图的生命周期要长,而且有可能会出现一个功能在不同场景下的视图呈现完全不一样,或者有可能会通过重新构建视图来实现一些换肤功能的场景...职责不明确 懒加载的主要作用是延迟创建,但是上述的视图属性的重写却已经超出了单纯的创建的范畴了,除了创建视图之外还实现了视图添加到父视图的功能以及进行布局的功能,更有甚者还有可能实现其他更加复杂的逻辑...loadView]; //如果你想完全自定义根视图就可以和上面我曾经列出的代码一样不调用父类的方法。...这些控制器所实现的功能的展示效果一样或者有微小的差别,但是事件处理逻辑则可以完全不一样。第二种方法的实现机制更加体现了MVC中的层次关系以及V层构建的独立性。...两个功能界面中其中一个功能界面除了实现另外一个功能界面的所有能力外还有一些附加的功能 对于新增能力的场景来说也是一样的,我们只需要在派生类中添加对应的附加界面和处理逻辑即可。

    5.2K30

    4位神级大牛说“别神化程序员了,编程不需要天赋和激情!”

    这种根深蒂固的成见不仅是完全错误的,而且还是有害的——但是许多成功的程序员都赞同这个观点。 ◆ ◆ ◆ 在这篇描述中,Jacob Kaplan-Moss指出: 神化“天才程序员”是极其危险的。...我开始慌了,我担心他们会知道我是个骗子,我是滥竽充数的。 突然我意识到,我已经忘了添加‘.send()了——我添加并刷新之后,页面出现了,然后团队成员纷纷赞扬说‘哦,真酷!’。...这种态度和我们对刻板的程序员的看法完全相反。 ◆ ◆ ◆ Rasmus Lerdorf的言论经常引发争议: 其实我真心讨厌编程,但我热爱解决问题。 有些人的确是真的喜欢编程。...我一直在寻找另一种编程语言,另一种……不一样的东西,在某种程度上能够让我觉得正在使用的语言不那么无聊的东西。 我是绝对不相信我会成为一个程序员的,当我用PHP和Java工作的时候。...但是我只希望对那些开始编程之路的初学者,正在怀疑他们是否适合是否合格的程序员说:多尝试一些不同的学习方式,不要担心什么资格,不要轻信那些毫无根据的故事,也不要改变你学习编程的心态。

    2.4K70

    Swift 3.0 探索之 UILabel

    QQ群 139852091) 正题 UILabel是我们开发中常用的控件了,我今天就拿它开刀,看一下我们在开发中常用的UILabel属性 创建已经常规设置 //let 变量名字 = 变量类型...(这是一个变量声明方法) let myLabel = UILabel() myLabel.text = "我是一个Label" //设置text 相比OC 省略了@“”...self.view.addSubview(myLabel) //添加到试图上 下面我运行了一下程序,显示如下(图1) ?...�图1 NSAttributedString 富文本 我们还经常使用 Label 的一个属性是NSAttributedString 我们看一下这个在Swift里面怎么使用 ****当设置NSAttributedString...图2.png 好了,今天差不多就这些,明天继续看,看一个最简单的UIView吧,代码我稍后会上传的群文件(QQ群 139852091)网盘已经git,明个见!

    1.2K30

    Swift 类构造器的使用

    反正对于我来说, 每过一段的时间回过头来看自己写的代码都感觉有很大的重构空间, 很多地方写的不够 PERFECT, 虽然我不是一个处女座, 但是对于代码的健壮和整洁还是很注意的....最后一个常见的错误大概是这样的 复制代码 Property 'self.label' not initialized at super.init call Orz, 到这里我已经放弃了自己通过尝试来解决这些问题了...这个调用父类构造器的过程沿着构造器链一直往上执行, 直到到达构造器链的最顶部. 当到达了构造器链最顶部, 且已确保所有实例包含的存储型属性都已经赋值,这个实例的内存被认为已经完全初始化。...所有的属性以及内存被完全初始化, 然后进入第 阶段 2. 阶段 2 从顶部构造器链一直向下, 每个构造器链中类的指定构造器都有机会进一步定制实例....但是因为我们已经重载了 init(), 定义了一个指定构造器, 所以这个方法不会被继承, 要手动覆写, 这就是第一个错误的原因.

    2.3K20

    使用Theos做一个简单的Mobile Substrate Tweak

    下面我们要完成一个小功能:在锁屏界面增加一个UILabel显示一行文字,可以是你的座右铭或者其他的,这里我们显示Hello, MobileSubstate!!。...,我们就要找到锁屏界面对应的ViewController,然后替换它的某个方法,把UILabel添加到它的view上。...在SBAwayController里有个叫_awayView的ivar,获得这个ivar需要一个theos中不存在的方法,好吧,它叫MSHookIvar,这个方法在默认的theos的substrate.h...然后就是我们非常熟悉的了,创建一个UILabel,添加到_awayView里。到这里就结束了。...这个小Demo是前两周写的,一直没有时间整理出来,今天抽时间整理了一下文字发了出来,算是送给自己新年的一件礼物吧! Thanks,Have Fun!

    1.4K20

    像教光学一样在高中教深度学习?怼过LeCun的Google大牛认为这事有出路

    我设计系统的大部分功夫都花在这个金字塔级别最高的前四层上。 这就是今天进行光学教学的方法。但是这些理论并不是一直都像这样以堆栈的方式进行组织。直到一百年以前,这些理论中还有一些是以相互冲突的状态共存。...而我只花了一个星期六的下午。作为交换,我就只在博客上报告一下我的发现算了。 现象:对SGD一个随机初始化就够。但之后一些小的数值错误,或者错误的步长大小,都会使SGD的效果变差。...或者你认为这是一个假的观察,这可能是不真实的? 也或者你认为这个观察有什么问题,就像是逻辑上的自相矛盾,或者是一个错误的说法?...此外,还有一种说法是,梯度下降可以解决这些风险,或者它不需要解决这些风险就能产生一个可以很好地泛化的解决方案。同样也有一些说法称,深度模型的损失面是完全良性的。 我勉强记录下这个现象。...我们把这个现象记录下来,尽管和我们的目的有点冲突。 解释 我们收集了一些现象。我也从上面提到的论文中收集了一些我认为有很大可能解释这些现象的理论。

    48230
    领券