Leí en un libro de PHP que es una buena práctica usar htmlspecialchars
y mysqli_real_escape_string
en condiciones cuando manejamos datos de usuarios inputados. ¿Cuál es la principal diferencia entre estos dos y dónde son apropiados para ser utilizados? Por favor guíame.Diferencia entre htmlspecialchars y mysqli_real_escape_string?
Respuesta
htmlspecialcars: "<" en "& lt;" (Sustituye código HTML)
mysqli_real_escape_string: "a \" (Sustituye Código, que tiene un significado en un mysql-query)
Ambos se utilizan para ser excepto contra algunos ataques como inyección SQL y XSS
¿Puede usted la amabilidad de explicar con un ejemplo –
htmlspecialchars (" < b > ä < /b > ') ==' b & lt; & lt; ä & lt;/b & gr; ' – EGOrecords
mysql_real_escape_string (') [imagina los qoutes alrededor] == \ ", – EGOrecords
Estas dos funciones se utilizan para cosas completamente diferentes.
htmlspecialchars() convierte caracteres HTML especiales en entidades para que se puedan generar sin problemas. mysql_real_escape_string() escapa de los caracteres SQL sensibles para que las consultas dinámicas puedan realizarse sin el riesgo de inyección de SQL.
Podría decir con la misma facilidad que htmlspecialchars maneja OUTPUT sensible, mientras que mysql_real_escape_string maneja input sensible.
Shai
Puede usted amablemente explicarlo con un ejemplo –
creo @ EGOrecords ya lo explicó. También recomiendo leer el manual, ya que tiene todos los ejemplos necesarios: http://php.net/htmlspecialchars, http://php.net/mysql_real_escape_string –
Las dos funciones son totalmente independientes de propósito; el único atributo que comparten es que se usan comúnmente para proporcionar seguridad a las aplicaciones web.
mysqli_real_escape_string
es para proporcionar seguridad contra SQL injection.
htmlspecialchars
está destinado a proporcionar seguridad contra scripts de sitios cruzados (XSS).
ver también What's the best method for sanitizing user input with PHP? y Do htmlspecialchars and mysql_real_escape_string keep my PHP code safe from injection?
¿Puede explicarlo amablemente con un ejemplo –
@ TheNoble-Coder: Mire las preguntas a las que me enlace. Además, google es tu amigo. – Jon
agradecimiento que se han abierto a esa pregunta –
htmlspecialcharacters vueltas 'html' caracteres especiales en código, tales como cotizaciones (individuales y dobles), los símbolos de unión, y menos de/mayor de signos. Esta función generalmente se usa para garantizar que los usuarios de contenido que publiquen en su sitio web no tengan etiquetas HTML o scripts XSS.
mysql_real_escape_string escapa cadenas, lo que significa que agrega \ al frente de barras diagonales, comillas (tanto simples como dobles) y cualquier otra cosa que pueda arruinar una consulta de mysql. Esta función garantiza que nadie esté ejecutando comandos SQL en su servidor y obtenga información de la base de datos.
Puede usted amablemente explicarlo con un ejemplo –
¿Puedo agregar que los programadores de PHP realmente avanzados hoy en día no hacen la validación de entrada de usuario a mano ya que es propenso a un miríada de posibles falacias pero en su lugar optan por algún framework PHP como CakePHP o CodeIgniter que ingresen los usuarios? validación y mucho más con pocas líneas de código?
Los programadores de PHP verdaderamente avanzados no se adelantaron al no saber a qué defenderse y cómo. No hay nada que pueda salir mal con la desinfección manual a menos que haga un mal uso de las instalaciones de desinfección. ¿Puedo agregar que el uso incorrecto de dichas instalaciones puede suceder sin importar si se llaman 'htmlspecialchars' o" framework helpers "? – Jon
Por lo que yo sé, el conocimiento nunca es una mala idea. Acabo de decir que la validación de entrada de usuario se realiza mejor con algunas funciones bien probadas y revisadas de un marco desarrollado por veteranos de PHP que con una función personalizada. SO. Ayudantes de framework creo que son una buena opción, ¡dios no quiera saber cómo funcionan los htmlspecialchars! – dendini
- 1. declaraciones preparadas de mysqli y mysqli_real_escape_string
- 2. htmlentities() vs. htmlspecialchars()
- 3. reverse htmlspecialchars
- 4. MySQL: diferencia entre ', `,' y"
- 5. Diferencia entre objeto y *?
- 6. Diferencia entre. y #
- 7. ¿Diferencia entre == y caso?
- 8. La diferencia entre $ * y $ @
- 9. Diferencia entre & y &
- 10. VBA: Diferencia entre y y +
- 11. htmlspecialchars sacando en blanco
- 12. Diferencia entre -Wconversion entre gcc y g ++
- 13. Diferencia entre subprocess.Popen y os.system
- 14. Diferencia entre decimal y decimal
- 15. ¿Diferencia entre trazo y relleno?
- 16. Diferencia entre interrupción y eventos
- 17. Diferencia entre netTcpContextBinding y netTcpBinding
- 18. ¿Diferencia entre brújula y sass?
- 19. Diferencia entre "__method__" y "método"
- 20. Diferencia entre Mealy y Moore
- 21. Diferencia entre HashSet y HashMap?
- 22. diferencia entre ajax y enviar
- 23. Diferencia entre sistema y shell_exec
- 24. Diferencia entre Style y ControlTemplate
- 25. Diferencia entre relativo y absoluto
- 26. Diferencia entre window.location.href y top.location.href
- 27. Diferencia entre strncpy y memcpy?
- 28. diferencia entre SDL y GLUT
- 29. Diferencia entre Javascript y PHP
- 30. Diferencia entre Session y HttpContext.Current.Session
posible duplicado de [htmlspecialchars o mysql_real_escape_string?] (Http://stackoverflow.com/questions/3603146/htmlspecialchars-or-mysql-real-escape-string) – ajreal