2011-02-23 2 views
3

내 옛 친구가 된 ASP 사이트에서 도움을 받아 문제가 발생하여 도움을 얻을 수 있는지 알아보기 위해이를 버리고 싶었습니다.민감한 필드가있는 고전적인 ASP 양식 게시물

사이트는 기본적으로 다른 페이지로 데이터를 POST해야합니다. 문제는 수신하는 페이지에 사용자 이름/암호를 POST해야한다는 것이며 사용자가 소스 코드에서 볼 수 있기 때문에 숨겨진 필드에 현재이 필드가 있음을 알 수 있습니다.

입력 필드에 ASP 페이지를 숨기지 않고 어떻게 데이터를 가져올 수 있습니까? 변수로 저장 될 수 있지만 그 다음 POST 할 수 없다는 것을 알고 입력 값 필드에 해당 변수를 넣으면 소스에 표시됩니다.

도움을 주시면 감사하겠습니다.

감사합니다.

+0

다른 사이트로 이동하기 위해 POST를 사용해야하기 때문에 내가 관심을 가진 사람이 여기에 있습니다. 우리는 개발자들과 함께 SSL을 통해 모든 민감한 데이터를 보낼 수있는 웹 서비스를 제공했습니다. 그 답례로, 사이트에 게시 할 일회용 토큰을 얻을 수 있습니다.이 토큰을 사용하면 요청을 식별하고 이전 웹 서비스 호출에서 전달 된 값을 검색 할 수 있습니다. 이것은 꽤 매끄럽게 작동하고 있으며, 이렇게하는 것이 상당히 안전한 방법이라고 생각합니다. – markiyanm

답변

4

그것은 그렇지 않은 수신 페이지

없음에 사용자 이름/암호를 게시 할 필요가있다. :)

두 페이지가 동일한 사이트의 일부인 경우 세션 개체를 사용하십시오.

두 페이지가 다른 사이트에있는 경우 사물이 더 복잡하지만 아이디어는 비슷합니다. 나는 이것이 당신에게 해당하는 것이 아니라고 생각하지만, 그렇다면 OAuth를보십시오. (예를 들어, 당신은 당신이 다른 사이트에서 인증을 사용, 이곳에서 로그인 있지만 유래는 해당 사이트의 암호를 볼 수 없습니다. 같은 생각을.)

+0

나는 소원한다! 불행히도 그들은 검증/인증을 위해 POST 데이터를 사용하는 다른 외부 사이트에 데이터를 게시하고 있습니다. – markiyanm

+3

오. 따라서 그것은 사용자/패스이고 사용자로부터 숨기고 싶습니까? 보낼 데이터가 모두 있으면 서버 측에서 HTTP 요청을하십시오. 거기에 사용할 수있는 표준 COM 구성 요소가 있습니다 : MSXML.XmlHttpRequest, 올바르게 호출 한 경우. – tangentstorm

+0

사실, 가장 간단한 구성 요소는 Microsoft.XMLHTTP입니다 (여기를보십시오 : http://support.microsoft.com/kb/290591) –

0

uniqueidentifier SessionId 
varchar   Username 
varchar   Password 

스토어처럼 보이는 데이터베이스 테이블 만들기 쿠키의 SessionId는 Response.Cookies입니다.

JavaScript의 쿠키에서 SessionId를 가져 와서 SessionId를 사용하여 데이터베이스에서 사용자 이름과 암호를 가져와 JSON의 값을 출력하는 페이지에 ajax 요청을 보냅니다. 숨겨진 필드에 자바 스크립트 값을 첨부하십시오. 양식 게시를 수신하는 페이지의 숨겨진 필드에서 값을 가져 오는 것처럼 보이지만 사용자가 페이지 소스를 보는 경우 <input type="hidden" id="username" name="username" value="DefaultUserNameValue" />과 같은 내용이 표시됩니다. 이 값은 사용자가 볼 수없는 javascript를 사용하여 동적으로 지정됩니다.

+0

왜 downvote? – smartcaveman

+0

사용자가 볼 수 없습니까? 잘못된. Firebug를 사용하여 업데이트 된 소스 또는 트래픽에서 최고점에 도달하는 모든 도구를 확인하십시오. 사용자 이름과 비밀번호는 귀하의 것입니다. –

+0

예, 해킹 가능합니다.하지만 POST를 위해 AJAX를 사용하고 서버 측에서 http 요청을 확인함으로써 사용자가 권한없는 방식으로이 스크립트를 실행하지 못하게 할 수 있습니다. 이것은 완벽한 솔루션은 아니지만 중요한 데이터를 서버 측 세션에 저장하고 웹 클라이언트에서 해당 데이터에 액세스하는 메커니즘을 제공하기위한 토대입니다. 또한 게시물 작성자는 누군가가 방화범을 사용하고 자바 스크립트를 분석 할 것이라고 걱정하는 정도까지 보안 문제를 표현하지 않았지만 민감한 값을 명백하게 보이는 곳에 남겨 둘 것이라고 우려했습니다. – smartcaveman

관련 문제