2013-09-07 1 views
0

텍스트 영역과 제출 버튼이 포함 된 Python CGI 스크립트로 HTML 페이지를 출력했습니다. 예를 들어 사용자가 textarea 필드를 망칠 수 없도록하고 싶습니다. 악의적 인 내용이나 스크립트를 위반할 수있는 다른 코드를 제출하는 행위. 나는 사용자가 텍스트 영역을 닫고과 함께 스크립트를 통과, 텍스트 영역에HTML 양식의</textarea> 사용자 닫기 금지

innocent message.</textarea>randomcode 

뭔가를 입력하는 것을 방지 할 수 방법

:

이 메시지를 입력 : 스크립트는 다음과 같이 간단하게 보인다 제출? 그래서 사용자가 textarea에 닫기 태그를 입력 잡을까요?

+1

현재하고있는 일을 진단 할 수있는 코드가 충분하지 않으며 무엇이 잘못되어 있는지 진단 할 수 없습니다. 또한 사용중인 Server Side 기술을 제공해야합니다. –

+0

악의적 인 주입이 작동하지 않는 방법 –

답변

0

설명에 따르면 도면은 다음과 같습니다.
서버 측 기술이 Form 요소가 포함 된 HTML 페이지를 생성하는 Python이라고 가정합니다.

사용자가 해당 닫는 태그를 입력하지 못하게하려고합니다. 기본적으로 사용자가 영숫자가 아닌 문자를 입력하는 것을 제한합니다.

해결책 : Python 스크립트가 HTML 양식 요소를 파생 할 때 javascript 함수를 생성하도록하십시오.

<script language="javascript"> 
function fnCheckAlphabets() 
{ 
    if(!((event.keyCode>43 && event.keyCode<47)||(event.keyCode>64 && event.keyCode<123)|| event.keyCode==32)) 
    { return false; } 
} 

를 양식의 텍스트 영역 또는 onSubmit의 이벤트 핸들러에서이 전화 : 뭔가있는 것처럼이 문제를 처리합니다.

요구 사항에 맞는 키 코드를 변경할 수 있습니다.

다른 방법은 서버 측 파이썬에서 값을 가져 와서 다음과 같은 값을 위생 처리합니다. 예 :

user = form.getfirst("user", "").upper() # This way it's safe. 

대신 상단을 사용하면 원치 않는 문자를 바꿀 수 있습니다.

참조 : http://docs.python.org/2/library/cgi.html

건배!

0

사용자 입력을 HTML로 구문 분석하도록 처리하지 않는 한 종료 태그를 catch 할 필요가 없습니다. 그런 일을하는 경우 태그를 닫을 때 더 큰 문제가 있습니다.

텍스트 영역은 기본적으로 일반 텍스트로 입력되며, 일반 텍스트는 CGI 스크립트가 가져 오는 텍스트이므로, HTML 파서로 보내지기 위해서는 문제가되지 않습니다.

특히 사용자 데이터를 사용자 페이지의 일부로 표시하려는 경우 브라우저에서 일반 텍스트로 처리하거나 사용자가 앞으로 전달할 수 있도록 위생 처리하는 방식으로 처리해야합니다 HTML 태그를 허용하고 다른 태그를 일반 텍스트로 바꾸거나 태그를 제거하십시오.