¿Es una debilidad poder ver los scripts del lado del servidor?

2

¿Los idiomas como Cold Fusion y PHP son menos seguros porque están incrustados en HTML que se envía a un cliente? Alguien me dijo que están menos seguros porque carecen de abstracción.

CLARIFICACIÓN: Creo que, por abstracción, lo que quiso decir mi amigo fue que el HTML enviado está justo en el archivo PHP / Cold Fusion, por lo que no es como si el HTML estuviera abstraído del script en ese sentido. Por cierto, el comentario estaba más dirigido a Cold Fusion que a PHP (pero supongo que es el mismo, ya que PHP puede integrarse en el HTML que se envía).

    
pregunta Celeritas 29.08.2012 - 07:45
fuente

2 respuestas

9

No estoy seguro de cuál es la mejor manera de abordar su pregunta, aparte de decir "no, no es un problema de seguridad". La abstracción no tiene nada que ver con eso. No estoy seguro de lo que tu amigo quiso decir con eso, pero PHP tiene abstracción (clases, herencia, etc.) y no requiere que incluyas ningún HTML en tu página en absoluto Los sitios PHP modernos tienden a tener una capa de datos, una capa lógica (generalmente facilitada por un conjunto de clases que representan objetos virtuales en el sitio) y una capa de presentación. CF probablemente tiene construcciones similares.

Una cosa que notaré (aunque no puedo hablar por CF) es que es muy fácil escribir código PHP terrible, en parte porque es muy indulgente y en parte porque la mayoría de los tutoriales no cubren ningún requisito de seguridad básico .

Sin embargo, aquí hay algunas razones por las que PHP es considerado "inseguro" por algunos:

  • El malabarismo de tipo silencioso, conduce a errores lógicos difíciles de detectar.
  • La información de fugas en la configuración predeterminada (muestra errores, php_info y exec habilitados, etc.)
  • Los tutoriales para MySQL dependen en gran medida de mysql_query con concatenación de cadenas, en lugar de consultas parametrizadas con DOP o MySQLi.
  • No hay funciones de filtrado de salida incorporadas para XML, JavaScript, etc. Las API para enviar de forma segura a HTML tampoco son claras y simples.

Sin embargo, no se transmite ningún código PHP al cliente en ningún momento . Es totalmente del lado del servidor. Se ejecuta en el servidor y genera un resultado, que generalmente es HTML.

No me malinterpretes, en realidad me gusta PHP. Es fácil de usar y (a pesar de sus peculiaridades) también puede escalar bastante bien. El problema es que es demasiado fácil escribir código. PHP hace que sea muy fácil introducir XSS, CSRF, LFI, RFI, SQLi, etc. en su código, ya que no documentan los riesgos potenciales junto con la referencia de la API, ni proporcionan formas obvias y estandarizadas de abordar los problemas de seguridad.

Mi último punto es este: los idiomas no son intrínsecamente inseguros. Algunos pueden facilitar la escritura de código incorrecto pero, al final, es el desarrollador quien creó la inseguridad, no el idioma.

    
respondido por el Polynomial 29.08.2012 - 08:11
fuente
6

No son enviados al cliente. Las etiquetas pueden estar incrustadas en HTML en el servidor, pero no están incluidas en lo que se envía al cliente (a menos que su servidor esté mal configurado).

Puedes escribir código seguro o inseguro en cualquier idioma. Sería mejor que pasara su tiempo investigando ataques comunes, como secuencias de comandos entre sitios e inyección de SQL, y asegurándose de evitarlos.

    
respondido por el Mike Scott 29.08.2012 - 08:06
fuente

Lea otras preguntas en las etiquetas