Foros del Web » Programando para Internet » PHP »

Duda en ver las informaciones publicadas

Estas en el tema de Duda en ver las informaciones publicadas en el foro de PHP en Foros del Web. Hola ¿Cómo están?, tengo problema en guardar datos con Tinymce, bien, yo uso esta función Código PHP: /**      * Removes all XSS attacks that came in the input.      *      * Function taken from:      *      * http://quickwired.com/smallprojects/php_xss_filter_function.php      *      * @param mixed $val The Value to filter ...
  #1 (permalink)  
Antiguo 22/04/2014, 12:07
Avatar de RobCo  
Fecha de Ingreso: julio-2012
Mensajes: 50
Antigüedad: 11 años, 8 meses
Puntos: 1
Duda en ver las informaciones publicadas

Hola ¿Cómo están?, tengo problema en guardar datos con Tinymce, bien, yo uso esta función

Código PHP:
/**
     * Removes all XSS attacks that came in the input.
     *
     * Function taken from:
     *
     * http://quickwired.com/smallprojects/php_xss_filter_function.php
     *
     * @param mixed $val The Value to filter
     * @return mixed
     */
    
function filterXSS($val) {
        
// remove all non-printable characters. CR(0a) and LF(0b) and TAB(9) are allowed
        // this prevents some character re-spacing such as <java\0script>
        // 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-\x20])/'''$val);
 
        
// straight replacements, the user should never need these since they're normal characters
        // this prevents like <IMG SRC=&#X40&#X61&#X76&#X61&#X73&#X63&#X72&#X69&#X70&#X74&#X3A&#X61&#X6C&#X65&#X72&#X74&#X28&#X27&#X58&#X53&#X53&#X27&#X29>
        
$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
 
            // &#x0040 @ search for the hex values
            
$val preg_replace('/(&#[x|X]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,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 .= '(&#[x|X]0{0,8}([9][a][b]);?)?';
                        
$pattern .= '|(�{0,8}([9][10][13]);?)?';
                        
$pattern .= ')?';
                }
                
$pattern .= $ra[$i][$j];
             }
             
$pattern .= '/i';
             
$replacement substr($ra[$i], 02).'<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;
    } 
que me consegui en esta web, pero el problema es que no guarda las etiquetas html como debe ser y convierta los codigos sea php, c++, html, javascript en cadena, tal cual como lo hace este foro. En el sistema de posts, o hay tutoriales de como lograr esto. Me explico. Si el usuario al publicar, informacion y agrega codigo php, javascript, o lo que sea lo ponga como una cadena. Ejemplo

Hola como estan

<?php

echo "Hola";

?>

<script type="text/javascript">
alert(1);
<script>

y no lo tome como codigo, si no como cadena. O haga como hace cualquier foro, al publicar información.

Aquí les dejo mi sitio web.

http://werpoint.meximas.com
  #2 (permalink)  
Antiguo 22/04/2014, 16:17
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Duda en ver las informaciones publicadas

TinyMCE se usa para editar texto enriquecido con formato HTML y el foro usa un sistema de marcado (BBCode) completamente diferente.

De qué es tu proyecto? foros o blog donde puedas insertar códigos de ejemplo?
__________________
- León, Guanajuato
- GV-Foto

Etiquetas: javascript, tinymce, xss
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 17:04.