提供带有密码的git URL,其中包含"@"符号。
问题的出现原因是根据RFC 1738规定,URL中只能包含“0-9a-zA-Z”、特殊字符“$-_.+!*'()”和用于其保留目的的保留字符,@字符不能直接在URL中使用,需要进行URL编码。然而,这种方式非常不安全,因为URL在HTTP流量中是可读的,并且会被主机缓存、日志记录以及代理和路由器在传输路径上以多种方式存储。
解决方法是不要在URL中提供密码,如果不需要进行身份验证,就不要使用密码。此外,浏览器已经不推荐在URL中提供密码,可以使用SSH密钥或者git config credential.helper等更安全的方法进行一步推送操作。HTTPS URL是加密的,因为它是HTTP协议的一部分,位于TLS之上,所以传递敏感数据是安全的。可能指的是域名部分不是加密的,这是正确的,并被SNI和DNS所使用。
企业代理服务器可以配置为解密和监视所有的https/TLS流量。此外,唯一防止恶意攻击者读取https流量的是证书。由于流量经常被分析和存档,一旦证书泄露,即使几个月或几年后也可以解密。因此,要经常更改密码,并且不要忘记,对安全的最大威胁是方便性。