cross-site-script는 해킹 기법인데 주석을 통해 설명하겠다.
owasp top10을 검색해보면 3~4년에 한번씩 자주 사용되는 해킹기법들이 공개된다.
자바스크립트에서 자주 사용되는 해킹 기법은 아래와 같다
XSS, CSRF, SQL-Injection
브라우저에서 이메일 비밀번호를 입력하고 Backend로 login API를 요청하게되면 DB에서 확인을하고 브라우저로 accessToken을 넘겨주게 된다.
만약에 Backend에서 코드작성을 아래와 같이 했을때
if(email===a@a.com&&pw===1234){
//accessToken을 프론트에 보내줘
}
로그인 창에서 비밀번호 입력을 qqq || 1 === 1 했을 때 비밀번호가 틀렸으나 && 문장으로 인해 1이 true가 되어 로그인이 성사된다. 하지만 ORM을 사용하면 이런 해킹 방식을 자동으로 막아준다. 그렇다하더라도 모든걸 ORM으로 처리할 수 없기때문에 SQL-injection 문제가 아직까지 발생하고 있다.
옥션 해킹 사건을 기준으로 예시를 들어보겠습니다.
img src="http://auction.com/changeUserAcoount?id=admin&password=admin" width="0" height="0"
옥션 관리자가 관리 권한을 가지고(이미 유효한 쿠키 발급된 상태로) 메일을 조회합니다.
해커는 위와 같이 태그가 들어간 코드가 담긴 이메일을 보낸다. 단, 관리자는 이미지 크기가 0이므로 이미지가 있는지 눈치를 채지 못합니다.
관리자가 메일을 열면 이미지 파일을 받아오기 위해 URL이 열리게 됩니다.
그렇게 되면 해커가 원하는 대로 관리자의 계정이 id와 pw 모두 admin인 계정으로 변경된다고 합니다.
참조 : https://coding-nyan.tistory.com/124