2018년 현재 비밀번호 자동완성을 사용 중지하는 방법
단순히
<form autocomplete="off">
로 Chrome이나 FireFox 등으로는 사용할 수 없습니다.이는 개발자의 의도보다 사용자 편의성을 선호하기 때문입니다.
하지만 개발자들도 여러가지 궁리를 갖고 이 문제에 맞서고 있는 것 같고, 검색하면 다양한 해킹을 보게 됩니다.
하지만 브라우저 벤더도 그것에 대항하고 있어 지금은 작동하지 않는 해킹도 존재합니다.
이 기사에서는 2018년 5월 현재 유효한 해킹을 소개합니다.
전제
다음 버전에서 확인하고 있습니다.
추가
Chrome에서
<form autocomplete="new-password">
로 설정하면 autocomplete를 비활성화 할 수 있습니다.그러나, 2018년 12월 현재, FireFox에서는 이 사양이 구현되어 있지 않으므로 주의해 주십시오.
autocomplete 속성 및 로그인 필드 | MDN
양 브라우저에서 대응을 실시하는 경우는, 이후의 내용을 봐 주세요.
autocomplete 비활성화(잘못된 예)
우선 비교적 새로운(2016년) 아래의 기사를 참고로 구현해 보았습니다.
autocomplete를 둘러싼 Chrome과의 인의없는 싸움 - Qiita
기사중에서는 이하와 같이 소개되고 있습니다.
인용
<form action="/login" method="post">
<input type="password" name="dummypass" style="visibility: hidden; top: -100px; left: -100px;" />
<input type="text" name="username" />
<input type="password" name="password" />
<input type="submit" />
</form>
더미의 password 입력란을 추가해, 보이지 않는 위치에 배치하는 해킹입니다.
이것에 의해 더미의 입력란이 오토 완성의 대상이 되어, 본래의 입력란의 오토 컴플리트를 무효화하는 목적입니다.
그러나이 해킹은 FireFox에서 잘 작동하지만 현재 Chrome에서는 사용하지 않았습니다.
autocomplete 무효화(잘 된 예)
위의 예에 약간의 손을 추가하여 Chrome에서도 작동시킬 수있었습니다.
수정 예
<form action="/login" method="post">
+ <input type="password" name="dummypass" style="top: -100px; left: -100px; position: fixed;" />
- <input type="password" name="dummypass" style="visibility: hidden; top: -100px; left: -100px;" />
<input type="text" name="username" />
<input type="password" name="password" />
<input type="submit" />
</form>
visibility: hidden
스타일을 삭제하는 중입니다.(아마도 해킹 대책을 위해 hidden 요소에 자동 완성을 적용하지 않을 것이라고 생각합니다)
또한 더미를 화면 밖으로 확실하게 내기 위해
position: fixed;
도 추가했습니다.결론
향후 브라우저 측의 대응에 의해 상기의 해킹도 사용할 수 없게 될 가능성이 있으므로 주의해 주십시오.
이런 번거로운 일을 하지 않아도 좋은 시대가 와 주었으면 합니다…
Reference
이 문제에 관하여(2018년 현재 비밀번호 자동완성을 사용 중지하는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/hogesuke_1/items/925d37c4c400697d371b텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)