Home  >  Q&A  >  body text

javascript - 为什么使用了https还是可以被抓包

我使用charles抓包同一局域网的iOS设备,安装了charles的证书以后,还是可以抓到手机上post请求(一个自己写的angular2应用)的用户名密码,原因大概是手动安装了charles的证书?

  private loginUrl = 'https://xxx.com/jwt-token-auth/';

    constructor(private http: Http) {

    }

    login(formData: Object): Observable<any> {
        console.log(this.loginUrl);
        let body = JSON.stringify(formData);
        let headers = new Headers({'Content-Type': 'application/json'});
        let options = new RequestOptions({headers: headers});
        return this.http
            .post(this.loginUrl, body, options)
            .map(this.extractData)
            .catch(this.handleError)
    }
如果可以被抓到,那https能够预防哪些安全问题?

有同学让我试试baidu.com,大概类似下面这样,但好像密码被加密了,我应用的是明文

伊谢尔伦伊谢尔伦2772 days ago853

reply all(10)I'll reply

  • PHP中文网

    PHP中文网2017-04-11 10:14:38

    https 是http的加密传输,抓包没用吧,没有密钥

    reply
    0
  • PHP中文网

    PHP中文网2017-04-11 10:14:38

    抓本机? 6666

    reply
    0
  • PHPz

    PHPz2017-04-11 10:14:38

    1.用户【cfrs2005】的回答【抓本机? 6666】其实说对了,但可能因为其答案太嘲讽太调皮,所以被折叠了。

    2.https把流量加密了,正常抓包,你看到的内容是一堆乱码。

    3.https的加密没有安全问题,但它只是用来防止通信过程中被第三方获取明文。如果黑客能直接控制通信的双方(你的电脑,或服务器),那么黑客肯定能看到https明文的。

    4.所以,你用charles之所以能看到https明文,是因为你允许了charles在你的电脑上做手脚,关键就是你同意charles在你电脑上安装证书。

    5.具体一点,charles通过使用了https代理功能,来完成查看https明文的目的,也就是SSL中间人攻击。简单来说,你并不是直接与https的另一端通信,而是与charles通信,charles再与另一端通信,这种结构下,charles才能看到通信明文。这个问题的原理比较复杂,涉及到整套RSA系统,想了解原理的话,建议去看【信息安全】相关书籍,但这类书籍的门槛非常高。另外Fiddle也有这个功能,而且原理也一样。

    reply
    0
  • 天蓬老师

    天蓬老师2017-04-11 10:14:38

    https 是加密传输的,即使你抓到包没有密钥也没有任何意义。

    reply
    0
  • PHPz

    PHPz2017-04-11 10:14:38

    https://www.baidu.com/
    上面的网站如何抓包解码,请教了。楼主可以尝试一下。

    reply
    0
  • 巴扎黑

    巴扎黑2017-04-11 10:14:38

    https是http的SSL版本,http本身是明文传输的,https请求内容进行了加密,本身还是可以被抓包的

    reply
    0
  • PHP中文网

    PHP中文网2017-04-11 10:14:38

    其实我感觉楼主的主要疑问在于,如何防止抓包者使用加密后的数据跟目标服务器接口通讯。有了接口地址和参数,黑客根本不用在乎你这是啥明文内容,反正可以对接口操作就行了。

    reply
    0
  • ringa_lee

    ringa_lee2017-04-11 10:14:38

    可以看看中间人攻击, 这个代理抓包就是使用了这个原理!

    reply
    0
  • PHP中文网

    PHP中文网2017-04-11 10:14:38

    首先跟你说一点 https是在 传输阶段进行加密的,但你本机用抓包软件抓 是在你数据还没进到网卡传送数据之前直接就已经被截获了,所以说 你自己抓自己的就可以 但你要抓别人的 就不可以,这是常识。

    reply
    0
  • PHPz

    PHPz2017-04-11 10:14:38

    公钥 还与可能被抓走呢

    reply
    0
  • Cancelreply