본문 바로가기

Local Oriented/HTML CSS JS

크롬에서 안전하지 않음 나오는 이유와 해결방법

구글은 내부적으로 https:// 프로토콜 즉 SSL 보안로직을 사용합니다.

구글에서 제공하는 대부분의 서비스는 https:// 프로토콜로 서비스 됩니다.


그런데, 외부 웹페이지가 http:// 로 호출되면 구글 프레임과 충돌하지요. (특히 구글 검색엔진)

그러니까, 구글은 다른 웹사이트들도 https:// 를 사용하도록 하는 목표를 가지게 되었고,

마침 구글에는 크롬이라는 불세출의 웹브라우저가 있었죠.


그래서 크롬 특정 버전부터는 http:// 로 접속시 주소창 옆에 느낌표를 띄워주었고,

만약 입력란에 <input type="password" ..> 이 사용되는 화면에선,

주소창 옆에 느낌표와 함께 '안전하지 않음' 을 추가로 보여주게 되었습니다.


https:// 를 사용하는 웹사이트라고 해서 안전한 웹사이트라고 100% 확신할 수는 없지만,

https:// 를 사용하면 사용자의 웹브라우저에서 웹서버로 전송되는 구간은 암호화가 되기 때문에..

그 부분에 있어서만큼은 안전하고 그런 기술적 장치가 적용된 웹사이트라는 것이겠구요.

구글도 https:// 를 사용한다고 해서 '안전함' 이라고는 표기하지 않습니다.

(흠.. 2018.06.22(금) 현재 안전함 이라는 단어를 사용하고 있네요.. ㅠ)


아무튼, 썰은 이것으로 끝내고..

이런 난국을 해결하는 방법은 2가지가 있습니다.


첫번째 해결방법은 웹사이트를 https:// 로만 구동되게 하는 것입니다.

http:// 로 접속하면 https:// 로 강제 전환 합니다.

SSL 인증서는 설치 및 갱신 비용이 들기도 하지만,

무료로 설치해 주고 갱신도 비용 없이 자동으로 적용하는 방법도 있습니다.


두번째 해결방법은.. 보통 때는 type="text" 로 하고,

사용자가 뭔가를 입력하려고 할 때에만 type="password" 로 하는 것입니다.

두번째 방법은 password 타입이 적용된 input 태그 뿐만 아니라 text 타입 input 태그에라도

값이 일단 입력되고 나면 '안전하지 않음' 이라고 표시됩니다.

결국 두번째는 해결방법이 아니라 눈가리고 아웅입니다.

첫번째 방법만이, 구글을 달래는 유일한 방법입니다. (아직까지는..)

아니면, type="text" 를 유지하고 사용자가 입력하면 자바스크립트 변수에 담고

input 태그에는 '*' 로 바꿔서 세팅하는 것은 어떨까요?

이렇게 해도, '안전하지 않음' 표시가 안 뜰 뿐, 느낌표는 표시됩니다.


아.. 그런데, 세번째 해결방법일까요..?

웹서비스가 80 포트로 하는 것이 아니면,

느낌표만 표시하고 '안전하지 않음' 은 표시하지 않네요.. ㅎㅎ

웹서비스 포트를 80이 아닌 다른 걸로 바꾸는 것도,

(구글이 알아채기 전까지는) 또 하나의 방법이 아닐까 싶습니다.

흠.. 2018.06.22(금) 오늘 보니 포트 바꾸는 것도 안전하지 않음으로 표시.. ㅋㅋ


Fine.