2013-11-26 1 views
0

어떤 사람은이 코드가 XSS LEAK에 개방적이라고 말해 줬습니다 ... 나는 누설을 수행하는 방법을 제외하고는 인터넷 검색을 시도했지만 많은 정보가 나타나지 않았습니다.htmlspecialchars를 사용하지 않을 때 XSS 유출

내가 htmlspecialchars()를 사용하고 있지 않다 경우 정말 subseptible 누구인지, 어떤 사람이 $_POST[] 변수 <?=$db_password?>을 할 수있는 편집 할 수 있습니다 내 질문은 ... 나는 PHP가 서버에서 처리 된, 그래서 문제가 해결 것이라고 생각하지 않았다 생각

, 권리? 그들이 수행 할 수있는 작업은 아래의 코드에 해롭지 않습니까 ??

나는이 값들을 MySQL에 삽입하기 위해 prepared statement를 사용하고 있습니다.

<form method="POST" action=""> 
    <input type="hidden" name="id" value="<?=$_POST['id']?>"/> 
    <input type="hidden" name="name" value="<?=$_POST['name']?>"/> 
    <input type="hidden" name="ordernum" value="<?=$_POST['ordernum']?>"/> 

    <?php 
    for ($i = 1; $i <= $_POST['ordernum']; $i++){ 
    echo '<input type="hidden" name="line'.$i.'" value="'.$_POST['line'.$i].'" />'; 
    } 
    ?> 
</form> 
+2

는 소리 :

https://www.owasp.org/index.php/XSS_Filter_Evasion_Cheat_Sheet

그 해결하려면, 당신은 이와 같은 필터링 라이브러리를 사용하려면 실제로 [XSS] (http://en.wikipedia.org/wiki/Cross-site_scripting)가 무엇인지 압니다. –

+0

좋아요, 링크를 읽었습니다 ... 당신이 다른 사람의 세션 정보를 보내도록 웹 사이트를 복제하거나 가장 할 수있는 것처럼 보입니다. 또는 로그온 한 상태에서 다른 사람의 세션을 도용하여 도용 할 수 있습니다. 하지만 세션을 사용하지 않고 있는데이 코드에 적용되지 않는다는 뜻입니까? –

+0

XSS를 사용하면 사람이 의도하지 않은 일을하도록 할 수 있습니다. 즉, 자바 스크립트를 삽입하고 액션을 수행합니다. – nrathaus

답변

0

예, 보안 문제를 해결할 수있는 공개 게이트입니다. $ _POST 데이터를 그대로 출력하고 있습니다.

최소한 htmlspecialchars() 이상, 더 많은 경우 strip_tags(), 필드 속성에 넣은 것. 그러나 그때조차도 여전히 안전하지 못합니다. 잠재적으로 거기에 보낼 수 더러운 입력의 일부 다채로운 샘플 : 당신이 돈 '처럼

http://htmlpurifier.org/comparison

+0

시간이 지남에 따라 htmlpurifier를 안전하게 사용할 수 있습니까? 나는 한 개인에 의해 유지되는 것처럼 보인다. –

+0

HTML 정수기는 2006 년 (2006 년) 실행을 기억할 수있는 한 유지되었으며, [symfony 번들] (https://github.com/Exercise/HTMLPurifierBundle)이있어 안전하다고 생각됩니다. 내기. 개인적으로, 나는 오직 PHP를 할 때만 WordPress를 사용하며, 여러 가지'esc _ *()'함수 (kses의 포크)는 잘 관리되어 있습니다. –

관련 문제