2011-10-12 2 views
0

관련 웹 사이트에 사용자의 자격 증명을 안전하게 저장하고 해당 웹 사이트에 로그온 할 때 자동으로 해당 사이트에 로그인하고 싶습니다. 보안 문제가 있다는 것을 이해합니다. 다른 사람들의 의견을 듣고 다른 사람들이 과거에 성공한 것을 확인하고 싶습니다.사용자를 외부 웹 사이트에 자동 로그인 하시겠습니까?

사용자를 자동 로그인하는 데 사용한 기술은 무엇입니까? HTML 양식을 복제하고 자바 스크립트를 통해 제출하지 않아도됩니다. 양식이 변경되면 오류가 발생하기 쉽습니다. 나는 iframe 안에 로그인 폼을 넣으려고했으나, 사이트의 소유자가 이것을 막을 수있는 것처럼 보였다. (첨부 된 스크린 샷 참조). 그들이 어떻게하는지 알아?

둘째, 자격 증명을 저장하여 "안전"한 방법은 무엇입니까?

... 피터

enter image description here

+2

왜 당신은 호기심이, 어떻게 하시겠습니까? – Maxpm

+0

@MaxPM 우리 사용자는 트위터뿐만 아니라 로그인해야하는 유료 비즈니스 관련 웹 사이트를 많이 보유하고 있습니다. 프로젝트의 일환으로, 그들은 가난한 사람의 SSO를 만들어 모든 사람들에게 항상 로그인 할 필요가 없도록 요청했습니다. 보안 및 유지 관리에 영향이 있다는 것을 알고 있습니다 ... 다른 사람들이 문제에 접근 한 방법을보고 싶습니다. –

답변

2

나는 사용자의 시스템에 세션 인증서를 저장하기 위해 쿠키를 사용하는 것이 좋습니다 것입니다. 그러한 쿠키에 대한 좋은 가치는 다음과 같습니다.

사용자 ID, 타임 스탬프, 해시 (사용자 ID. 타임 스탬프. global_secret)

, 사람들이 이렇게 같이 해시를 크래킹 (40 자 정도)을 피하기 위해 매우 긴 할 필요가global_secret의 값 다른 사용자의 사용자 ID로 자신의 자격 증명을 만들 수 있습니다!

'기타 사이트'경우, 공급 해시에 대해 그것을 확인 사용자 ID, 타임 스탬프의 일반 텍스트 값 (모든 사이트 알)을 global_secret를 사용하여 해시를 계산,이 쿠키를 확인할 것 일치하면 유효한 인증서입니다.

그러면 타임 스탬프를 확인하고이 인증서가 액세스 할 수있는 '새로운'충분한 인증서인지 결정해야합니다.

이것은 표준 방법입니다.

+0

다른 사이트에서 쿠키를 어떻게 확인합니까? 쿠키는 도메인 (또는 더 좁은) 단위로 설정되며 사이트는 "외부"입니다. – Quentin

+0

로그인하면 일련의 보이지 않는 iframe을 각 외부 사이트에 에코 아웃합니다. 별도의 목록을 유지할 필요가 없도록 중앙 집중식으로 관리 할 수 ​​있습니다. iframe 요청에는 외부 사이트가 쿠키로 다시 표시 할 수있는 자격 증명이 포함 된 GET 변수가 포함됩니다. – lynks

0

사용자를 자동 로그인하는 일반적인 방법은 임의의 문자열로 쿠키를 설정하는 것입니다. 임의의 문자열을 추측 할 수 없어야합니다. 서버에서 쿠키를 확인하고 일치하면 사용자로 로그인합니다. 그러나 사이트가 https로 완전히 제공되지 않으면 트래픽을 수신 할 수있는 모든 사용자가 사용자 인 것처럼 가장 할 수 있습니다. 보안을 조금 늘리려면 무작위 문자열이보기 일 동안 만 유효하다는 것을 구현 한 다음 사용자가 다시 로그인해야하고 새로운 임의의 문자열이 생성되도록 구현할 수 있습니다. 따라서 누군가가 쿠키 ID를 훔치면 공격자는 계정에 대한 특정 시간에만 액세스 할 수 있습니다.

+0

다른 사이트에서 쿠키를 어떻게 확인합니까? 쿠키는 도메인 (또는 더 좁은) 단위로 설정되며 사이트는 "외부"입니다. – Quentin

+0

다른 사이트에서는 자바 스크립트로 쿠키를 가져올 수 없습니다 (보안 문제가있는 경우 제외). 예 : 암호화되지 않은 무선 랜에 있으면 모든 사람이 모든 트래픽을 읽을 수 있습니다 (암호화되지 않은 경우 https 등). 이 트래픽을 형성하여 공격자가 필요한 모든 것을 추출 할 수 있습니다. – styrr

+1

그건 내 요점이야. 내 사이트는 귀하의 사이트에 누군가를 기록하도록 쿠키를 설정할 수 없습니다. – Quentin

2

이 작업을 수행하지 마십시오. (예를

https://www.facebook.com/terms.php?ref=pf

(3.2) 당신은 사용자의 컨텐츠 나 정보, 또는 기타 액세스 페이스 북, 자동으로 사용하는 것을 의미를 수집하지 않습니다 : 각 사이트 (예 : 페이스 북)에 대한 서비스의 약관을 읽어 로봇, 거미 또는 긁는 도구를 수확하는 것과 같이) 우리의 허락없이.

(3.5) 로그인 정보를 요청하거나 누군가 다른 사람의 계정에 액세스하지 않습니다..

(4.8) 사용자는 암호를 공유하지 않으며 (개발자의 경우 비밀 키) 다른 사용자가 내 계정에 액세스 할 수 없도록하거나 다른 사람이 내 계정의 보안을 위태롭게 할 수 있습니다.

당신은 자신과 사용자를 위험에 처하게합니다.

이러한 사이트에는 이유가있는 API가 있으므로 더 합법적 인 방법으로 사용하는 것이 좋습니다.

그래서 페이스 북 사용자의 정보를 검색하려고하는 경우 앱을 만들고 앱을 승인하게 한 다음 페이스 북의 API (example)를 통해 정보를 검색하십시오. 이 방법으로 벽에 게시 할 수도 있습니다.

https://developers.facebook.com/

https://dev.twitter.com/

https://developers.google.com/

+0

나는 stevether에 동의해야한다. 페이스 북의 악명 높은 API로 싸워야 할 수도 있지만, 이는 확실히 법적으로나 보안상의 관점에서 더 안전한 접근 방법이다. 그리고 당신의 고용주가 여전히 이전의 방법으로 그것을 주장한다면, 저는 더 평판 좋은 고용주를 찾는 것이 좋습니다. – k4t434sis

+0

의견을 보내 주셔서 감사합니다 ... 우리는 페이스 북이나 트위터 같은 일반적인 사용자 대면 사이트에 사람들을 로깅하지 않을 것입니다. 우리는 사업 관련 사이트에 이러한 사이트를 로깅하여 우리에게 그렇게 할 수 있습니다. 최소한의 유지 보수/해킹으로 기술적으로 가능한지 알아 내면 그 부분을 평가할 것입니다. –

관련 문제