2010-08-11 5 views
0

HTML 폼을 통해 서버로 보낸 데이터를 읽으려고 $ _POST를 사용하여 공격 노출을 줄입니다. 양식에 토큰을 사용하여 보안을 강화하려면 어떻게해야합니까? 토큰은 스니퍼와 함께 읽을 수 있지만 ....."안전한"HTML FORM을 계획하는 방법

**** EDIT ***** 나는 위의 메시지가 일반적인 것에 동의합니다 ... 자세한 내용을 알려 드리겠습니다!

PHP/Server는 일종의 사용자 수정을위한 일부 데이터가 포함 된 전자 메일을 생성합니다. 이것은 HTML 양식을 포함하는 HTML 이메일로 수행됩니다. 사용자가 전자 메일을 받으면 양식의 데이터를 편집하여 서버로 보내면 다시 데이터베이스에 저장됩니다.

다른 유형의 상호 작용 사용자/서버의 경우 로그인/인증이 필요하지만 휴대 전화와 같은 일부 이메일 클라이언트는 HTML 이메일 메시지를 읽고 양식을 처리 할 수 ​​있지만 클라이언트 인증을 허용하지 않습니다 (서버 측 로그인) 이전에 양식을 처리하십시오.

양식을 받았을 때 서버 측에서 어떤 일이 발생합니까? Well $ _POST가 사용되어 잠재적 인 GET 취약점을 제거하지만, $ _POST를 사용하면 다른 종류의 공격을 막을 수 없습니다. 스니퍼가 전송되는 데이터를 쉽게 "읽을"수 있기 때문입니다.

서버 측의 데이터가 구문 분석되고 그에 따라 제거되므로 안전하지 않은 자바 스크립트와 인용 된 텍스트가 제거되어 주사 나 다른 종류의 공격을 막을 수 있습니다.

토큰/논스 (nonce) 기술을 찾는 이유가 여기에 있습니다. 그러나 토큰이 양식 안에서 스니핑 될 수 있다고 생각했습니다. 그게 내 도움 요청이 시작되는 곳입니다!

+0

어떤 공격에 대해 이야기하고 있습니까? 어떤 의미에서 안전합니까? – Artefacto

+0

$ _POST를 사용하면 공격 노출을 제한 할 수 없습니다. 그러나 사용자에게 암호가 URL 표시 줄에 표시되지 않는다는 보안 감각을 제공합니다. –

+1

토큰을 서버 측 방어 장치로 사용할 수 있습니다. 양식이 사용자에 대해 생성되면 일회 토큰이 제공됩니다. 한 번만 제출하면 토큰이 서버 측에서 무효화됩니다. 누군가가 전체 양식을 스니핑하고 원래의 사용자보다 먼저 제출할 수있는 공격 벡터는 특히 토큰이 세션/사용자 별 일 경우별로 중요하지 않습니다. – Fosco

답변

2

다음은 살펴 봐야 할 몇 가지 사항입니다.

0

좋아, 나는 Wordpress가 NONCES에 대한 자체 API를 제공한다는 것을 발견했다. 지금 내가하는 일은 NONCE가 포함 된 양식에 입력 필드를 추가하는 것입니다. 사용자가 양식을 서버로 보내면 NONCE는 유효성을 검사합니다.

공격자가 NONCE 문제/확인 사이에 발생하는 랩타임 중에 ** 전용 ** 양식에 포함 된 NONCE를 사용하여 액세스 할 수있는 가능성이 조금 있습니다. 매우 어렵지만 공격자가 데이터를 스니핑해야하며 데이터베이스에 "무언가"를로드하는 데 즉시 사용하지 않아야합니다. 내용이 스트립 슬래시 및 자바 스크립트가 아닌 것으로 가정하면로드 할 수 있습니까? WP 난스가 상수 사용하여 생성되므로

또한 :

wp_create_nonce ('my-nonce'); 

을이 생성하는 패턴을 추적하는 것이 더 어려워진다 침입자하는 방식으로 가변 생성 난스를 사용하는 몇 가지 추가 작업을 필요 NONCE ...

당신은 어떻게 생각하십니까?