2016-08-29 2 views
1
나는 웹 페이지를

가의 페이지를 호출 가정 해 봅시다 로그인 쿠키를 훔치는 페이지를 만들었습니다. 나의 페이지 . 이/(creator's_username)/(project_name). 예를 들어 내 사용자 이름이 "USR"이고 프로젝트 이름이 "PROJECT"인 경우 링크는 http://www.mypage.this/USR/PROJECT입니다.방지 사용자는

그러나 보안 문제가있다 ...

나는 쿠키와 같은 사람들의 로그인 토큰을 저장합니다. 어떤 사용자의 스크립트에 쿠키를 읽고 다른 사람에게 보내는 기능이 있다면 어떻게 될까요?

그들은 다른 사람의 계정에 액세스 할 수 있습니다. 여러 페이지에서 사용자를 확인해야하기 때문에 토큰을 쿠키로 저장해야합니다. 사용자가 작성한 스크립트가 토큰을 읽지 못하도록하고 내 페이지에서 토큰을 읽을 수 없도록하려면 어떻게해야합니까?

내가 사용자의 측면에서 암호를 저장하지하고, 오해를 지우려면 잠시

가끔씩 토큰은 물론이다

* 사전에 다시 만들어드립니다. 로그인 쿠키를 저장합니다. 임의로 생성 된 문자열입니다. 로그인 할 때마다 다시 생성됩니다. 그리고 나는 그것을 사용자 측에 저장합니다.

+0

는 그것은 단지 자신의 사용자 쿠키를 읽을 것이 가치가 무엇인가에 대한 책을 읽은 시간을 보내고 있습니까? –

+0

스크립트를 실행하는 사용자의 토큰을 읽습니다. 그래서, 페이지를 여는 사람. –

+0

그래서 사용자는 자신의 프로젝트 (html/css/js)를 만들 수 있으며이 URL을 통해 모든 사람들이 볼 수 있습니까? –

답변

0

여러 페이지로 사용자를 확인해야하는 경우 쿠키가 아닌 세션에 로그인 정보를 저장해야합니다. 이렇게하면 모든 것이 서버에 유지되며 액세스 할 수 있습니다.

쿠키는 사용자가 연결을 끊어도 정보를 저장할 수 있도록 만들어 졌으므로 브라우저 나 다른 것을 떠나야합니다.

쿠키에 로그인 정보를 저장하는 것은 일반적으로 바람직하지 않습니다. 안전하지 않기 때문입니다.

+0

답변 해 주셔서 감사합니다. 사용자가 해당 사용자임을 증명할 수 있도록 사용자 사이트에 무언가를 저장해야합니다. 그리고 사용자의 비밀번호를 로그인 토큰으로 저장하지 않습니다. 그리고 당신이해야 할 일은 "세션"입니다. JS 변수? –

+0

세션은 서버 측이므로 JS를 통해 액세스 할 수 없습니다. 좋아, 나는 오해하고 당신이 암호를 저장하고 있다고 생각했다. 내 생각에 로그인 토큰을 저장하는 가장 좋은 방법은 사용자 이름을 저장했는지 확인할 수있는 해시 방식이지만 해시에서 사용자 이름을 검색하는 것은 불가능합니다. 비밀번호와 마찬가지로해야합니다. – Bjornir

0

우. 사용자가 다른 브라우저에서 스크립트를 실행하는 페이지를 만들지 못하게하는 것이 좋습니다. 이로 인해 크로스 사이트 스크립팅 취약점 (여기에서 언급 한 것과 같은)이 발생할 위험이 있습니다. 가장 안전한 방법은 모든 SCRIPT 태그를 차단하는 것입니다. 그러면 차단할 다른 것들도있을 것입니다.

https://en.wikipedia.org/wiki/Cross-site_scripting

https://www.owasp.org/index.php/Top_10_2013-A3-Cross-Site_Scripting_(XSS)

+0

그럴 수도 있습니다. 고맙습니다. –