2017-01-21 10 views
1

사용자가 PHP 코드 <?php //code here ?>을 입력 텍스트 태그에 추가한다고 가정하면 (예 :이 경우에는 필요하지 않음) 여는 태그와 닫는 태그는 &lt;&gt;으로 변환되거나 그대로 유지됩니다 contenteditable div?입력 태그가 HTML로 'sanitized'되었습니까?

답변

0

사용자 입력은 DOM의 속성에 첨부 된 원시 텍스트입니다.

HTML이나 PHP 또는 무언가가 완료 될 때까지 (예 : 제출되는 양식 또는 JavaScript가 속성을 읽고 조작하는 경우).

+0

감사합니다 PHP를 통해 조작되는 경우 입력 필드에 입력 한 내용이 PHP 코드의 영향을 받습니까? –

+0

@Osman - PHP 스크립트에 양식을 제출하는 방식으로 코드가 PHP 코드로 평가되는지 묻는 중입니다. 아니요, 코드를 작성해야합니다. 그렇지 않으면 텍스트로 표시됩니다. – Quentin

+0

맞아, 고마워! –

0

원시 텍스트는 표준 HTML 입력에 상주하며 사용자가 입력 한 PHP 코드는 실행되지 않습니다.

코드가 수행하는 작업 (데이터베이스 또는 웹 서비스로 전송)에 따라 공격자는 올바르게 위생되지 않으면 공격을 수행 할 수 있습니다.

따라서 클라이언트와 서버 측 모두에서 사용자 입력을 항상 위생해야합니다 (특히 데이터베이스에 대해 발생하는 경우).

다른 프레임 워크는 위생 처리를 지원합니다. PHP에서는 다음에 액세스 할 수 있습니다. sanitization filters.

참조를 위해 SQL 주입/XSS와 같은 다른 공격에 대해서도 알고 있어야합니다. 몇 가지 일반적인 웹 공격에 대해 간략히 설명한 OWASP 상위 10 개를 살펴보고 PHP filters에 대해 토론하는 것이 좋습니다.

나는 공격자가 데이터베이스에 악성 코드를 저장 관리하는 경우 발생할 수 여기에 사용자 입력을 다시 반영 매우 기본적인 예를 만들었습니다

: 일단 데이터가 입력 불구하고

var text = document.getElementById("test").value; 
 
eval(text);
<input id="test" type="text" value="alert('I have access to you document cookies and could use a windows redirection here')" />