recherche

Maison  >  Questions et réponses  >  le corps du texte

javascript - Comment stocker du code HTML dans une base de données

Il y a maintenant 3 questions :

<!-- Bouton JiaThis COMMENCER --->
<script type="text/javascript" src="http://v3.jiathis.com/code/jiathis_r.js?move=0" charset="utf-8"></script>
<!-- Bouton JiaThis FIN -->
怪我咯怪我咯2767 Il y a quelques jours422

répondre à tous(2)je répondrai

  • PHP中文网

    PHP中文网2017-05-16 13:03:20

    1. Le code html utilise généralement des stripcslashes pour échapper ses fragments dans la bibliothèque, les retirer et utiliser des addcslashes pour les restaurer, et en trouver des ouverts bibliothèque de classes xss de filtrage de source, telle que html 代码一般使用 stripcslashes 对其片段转义入库,取出用addcslashes 还原,找一些开源的过滤 xss 的类库,如

    2. 如果是JSON格式的字符串的话直接存就行了

    3. 避免SQL注入请使用PDO的预处理 http://php.net/manual/zh/book...

    贴段简单的防XSS

  • 🎜S'il s'agit d'une chaîne au format JSON, enregistrez-la simplement directement🎜 🎜🎜Pour éviter l'injection SQL, veuillez utiliser le prétraitement de PDO http://php.net/manual/zh/book...🎜 🎜Publiez un moyen simple d'empêcher le XSS🎜
    <?php  
    function RemoveXSS($val) {  
       // remove all non-printable characters. CR(0a) and LF(0b) and TAB(9) are allowed  
       // this prevents some character re-spacing such as <javarrreeescript>  
       // note that you have to handle splits with \n, \r, and \t later since they *are* allowed in some inputs  
       $val = preg_replace('/([\x00-\x08,\x0b-\x0c,\x0e-\x19])/', '', $val);  
    
       // straight replacements, the user should never need these since they're normal characters  
       // this prevents like <IMG SRC=@avascript:alert('XSS')>  
       $search = 'abcdefghijklmnopqrstuvwxyz'; 
       $search .= 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';  
       $search .= '1234567890!@#$%^&*()'; 
       $search .= '~`";:?+/={}[]-_|\'\'; 
       for ($i = 0; $i < strlen($search); $i++) { 
          // ;? matches the ;, which is optional 
          // 0{0,7} matches any padded zeros, which are optional and go up to 8 chars 
    
          // @ @ search for the hex values 
          $val = preg_replace('/(&#[xX]0{0,8}'.dechex(ord($search[$i])).';?)/i', $search[$i], $val); // with a ; 
          // @ @ 0{0,7} matches '0' zero to seven times  
          $val = preg_replace('/(&#0{0,8}'.ord($search[$i]).';?)/', $search[$i], $val); // with a ; 
       } 
    
       // now the only remaining whitespace attacks are \t, \n, and \r 
       $ra1 = Array('javascript', 'vbscript', 'expression', 'applet', 'meta', 'xml', 'blink', 'link', 'style', 'script', 'embed', 'object', 'iframe', 'frame', 'frameset', 'ilayer', 'layer', 'bgsound', 'title', 'base'); 
       $ra2 = Array('onabort', 'onactivate', 'onafterprint', 'onafterupdate', 'onbeforeactivate', 'onbeforecopy', 'onbeforecut', 'onbeforedeactivate', 'onbeforeeditfocus', 'onbeforepaste', 'onbeforeprint', 'onbeforeunload', 'onbeforeupdate', 'onblur', 'onbounce', 'oncellchange', 'onchange', 'onclick', 'oncontextmenu', 'oncontrolselect', 'oncopy', 'oncut', 'ondataavailable', 'ondatasetchanged', 'ondatasetcomplete', 'ondblclick', 'ondeactivate', 'ondrag', 'ondragend', 'ondragenter', 'ondragleave', 'ondragover', 'ondragstart', 'ondrop', 'onerror', 'onerrorupdate', 'onfilterchange', 'onfinish', 'onfocus', 'onfocusin', 'onfocusout', 'onhelp', 'onkeydown', 'onkeypress', 'onkeyup', 'onlayoutcomplete', 'onload', 'onlosecapture', 'onmousedown', 'onmouseenter', 'onmouseleave', 'onmousemove', 'onmouseout', 'onmouseover', 'onmouseup', 'onmousewheel', 'onmove', 'onmoveend', 'onmovestart', 'onpaste', 'onpropertychange', 'onreadystatechange', 'onreset', 'onresize', 'onresizeend', 'onresizestart', 'onrowenter', 'onrowexit', 'onrowsdelete', 'onrowsinserted', 'onscroll', 'onselect', 'onselectionchange', 'onselectstart', 'onstart', 'onstop', 'onsubmit', 'onunload'); 
       $ra = array_merge($ra1, $ra2); 
    
       $found = true; // keep replacing as long as the previous round replaced something 
       while ($found == true) { 
          $val_before = $val; 
          for ($i = 0; $i < sizeof($ra); $i++) { 
             $pattern = '/'; 
             for ($j = 0; $j < strlen($ra[$i]); $j++) { 
                if ($j > 0) { 
                   $pattern .= '(';  
                   $pattern .= '(&#[xX]0{0,8}([9ab]);)'; 
                   $pattern .= '|';  
                   $pattern .= '|(&#0{0,8}([9|10|13]);)'; 
                   $pattern .= ')*'; 
                } 
                $pattern .= $ra[$i][$j]; 
             } 
             $pattern .= '/i';  
             $replacement = substr($ra[$i], 0, 2).'<x>'.substr($ra[$i], 2); // add in <> to nerf the tag  
             $val = preg_replace($pattern, $replacement, $val); // filter out the hex tags  
             if ($val_before == $val) {  
                // no replacements were made, so exit the loop  
                $found = false;  
             }  
          }  
       }  
       return $val;  
    } 

    répondre
    0
  • PHPz

    PHPz2017-05-16 13:03:20

    Premièrement, introduire js dans le code et le stocker directement dans la base de données sans le traiter est un comportement très irrationnel. Veuillez le résoudre de la manière suivante
    1 : convertissez les informations, les caractères htmlspecialchars et le html en entités, puis enregistrez-les dans la base de données. Cette méthode est paresseuse et facile à contourner
    2 : utilisez des expressions régulières pour obtenir le contenu de src et enregistrez-le dans la base de données

    répondre
    0
  • Annulerrépondre