由于iOS的闭源性,iOS开发者往往会认为安全问题交给苹果公司就可以了,而不去注重APP本身的安全性问题。然而苹果公司只保护了你的源代码,他们不会被人轻易地看到,但是开发者自己写的东西就要小心了。
交互是不安全的
首先大家要知道的事在与服务器的交互中经过的多到关卡都是不可控的,有可能有人正在分析你交互时每个数据包的内容,黑客们可以轻易地下载到你的app,轻易地通过他们搭建的网络,轻易地检查每一个调用的接口和封包内容。这并不难,甚至可以说是很简单,一些简单的工具可能你听说过或是使用过的类似于Charles啊、wireshark啊这种工具人人都能下载到,或是你我没听说的一些更具有针对性的工具啊。他们通常都使用简单,这使得很多有心人将会没什么付出的情况下发现你的APP与服务器交互时所存在的安全问题。 在这里首先要呼吁一点,大家尽可能的使用HTTPS,而
不要将NSAppTransportSecurity下NSAllowsArbitraryLoads的值设为YES
这将允许http在你的app中合法的使用,我们都知道http是在裸奔的吧。
如果真的需要使用,可以凑合使用
虽然对于HTTPS的安全性,我们要保留质疑的态度,但是这已经足以使得很多半壶黑客或者他们可能就是个无聊的玩玩试试的大学生打退堂鼓了。
HTTPS也阻止不了黑客
同样,在想搞搞你玩玩的大学如果常和有点黑客水平的人聊聊天,那他们大概也知道SSLStrip。很简单的小工具,让你的HTTPS和http一样。这时候他们还是很随意的看封包内容,如果你的用户的路由器,DNS被劫持了那他们的账号密码,用户信息都被一览无遗,尤其是一些关键的邮箱,不提起名字之前太多的邮箱内容都在黑客的屏幕上清晰地,一字不差的显示着。如果你是一个视频软件,流媒体也不是不能截获的,可能她或他在跟她或他的他或她的一些小秘密都会被一览无遗。这里同时还要提起就是使用公共网络的时候尤其危险,这个公共网络也可能是很多小区所一起使用的多户用一条线路的不太好用的百兆光纤。