2017-08-21 8 views
1

私はいくつかのjavascriptコードのhtmlエンティティをデコードしようとしています。しかし、それは動作していないように見えますが、エンコードされたhtml要素を出力します。 この%3Cscript%は3つのニーズがURLエンコードのHTMLエンコーディングではありません。この<スクリプト>html_entity_decodeが動作していないようですlarvel php

Array content 

     Array 
     (
      [0] => http://localhost:8888//index.php?email=%3Cscript%3Ealert%28%27biatg906op%27%29%3C%2Fscript%3E%0A 
      [1] => http://localhost:8888//index.php?email=%3Cscript%3Ealert%28%22biatg906op%22%29%3C%2Fscript%3E%0A 
      [2] => http://localhost:8888//index.php?email=%3CScRiPt%3Ealert%28%27biatg906op%27%29%3C%2FsCrIpT%3E%0A 
      [3] => http://localhost:8888//index.php?email=%3CScRiPt%3Ealert%28%22biatg906op%22%29%3C%2FsCrIpT%3E%0A 
      ... 
     ) 

     $xss_array = explode("=", $value); 

     $xss_attack = html_entity_decode($xss_array[1]); 

     echo 'Attack: ' . $xss_attack.PHP_EOL; 

     output 
     Attack: %3Cscript%3Ealert%28%27khp9s5z73u%27%29%3C%2Fscript%3E%0A 
     Attack: %3Cscript%3Ealert%28%22khp9s5z73u%22%29%3C%2Fscript%3E%0A 
     Attack: %3CScRiPt%3Ealert%28%27khp9s5z73u%27%29%3C%2FsCrIpT%3E%0A 
     Attack: %3CScRiPt%3Ealert%28%22khp9s5z73u%22%29%3C%2FsCrIpT%3E%0A 

答えて

2

urldecode()を使用しています。

urldecode()を使用して解決できます。

コード:

<?php 

$val= "http://localhost:8888//index.php?email=%3Cscript%3Ealert%28%27biatg906op%27%29%3C%2Fscript%3E%0A"; 

$xss_array = explode("=", $val); 

$xss_attack = urldecode($xss_array[1]); 

echo 'Attack: ' . $xss_attack.PHP_EOL; 

出力:

Attack: <script>alert('biatg906op')</script> 

デモ:Click Here

+0

私はあなたの問題を解決するためにデモを追加し、その普通のlaravelに関連していませんPHPの問題。 @melkawakibi – RJParikh

1

になるために、とてもそのhtml_entity_decode()によってデコードないこれは、HTMLされていない代わりがhtml_entity_decode

関連する問題