1
0
mirror of https://github.com/php/doc-es.git synced 2026-03-23 23:12:09 +01:00
Files
archived-doc-es/security/variables.xml
Philippe DELENTE e571c79b21 update revision EN yaf and security (#165)
* update revision EN yaf and security

* Review

* fix review

* Reviewed

---------

Co-authored-by: Marcos Porto Mariño <php@marcospor.to>
2025-03-16 15:33:48 +01:00

118 lines
4.0 KiB
XML

<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: f0ed705e1ac34fed4c92979f63bee74c382f991b Maintainer: PhilDaiguille Status: ready -->
<!-- Reviewed: yes Maintainer: Marqitos -->
<!-- splitted from ./index.xml, last change in rev 1.66 -->
<chapter xml:id="security.variables" xmlns="http://docbook.org/ns/docbook">
<title>Datos Enviados por el Usuario</title>
<para>
Las mayores debilidades de muchos programas <acronym>PHP</acronym> no son inherentes al
lenguaje mismo, sino simplemente un problema generado cuando se escribe
código sin pensar en la seguridad. Por esta razón, usted debería tomarse
siempre el tiempo para considerar las implicaciones de cada pedazo de
código, para averiguar el posible peligro involucrado cuando una variable
inesperada es enviada.
<example>
<title>Uso Peligroso de Variables</title>
<programlisting role="php">
<![CDATA[
<?php
// eliminar un archivo del directorio personal del usuario .. ¿o
// quizás de alguien más?
unlink ($evil_var);
// Imprimir el registro del acceso... ¿o quizás una entrada de /etc/passwd?
fwrite ($fp, $evil_var);
// Ejecutar algo trivial.. ¿o rm -rf *?
system ($evil_var);
exec ($evil_var);
?>
]]>
</programlisting>
</example>
</para>
<para>
Usted debería examinar siempre, y cuidadosamente su código para asegurarse
de que cualquier variable siendo enviada desde un navegador web sea
chequeada apropiadamente, y preguntarse a sí mismo:
<itemizedlist>
<listitem>
<simpara>
¿Este script afectará únicamente los archivos que se pretende?
</simpara>
</listitem>
<listitem>
<simpara>
¿Puede tomarse acción sobre datos inusuales o indeseados?
</simpara>
</listitem>
<listitem>
<simpara>
¿Puede ser usado este script en formas malintencionadas?
</simpara>
</listitem>
<listitem>
<simpara>
¿Puede ser usado en conjunto con otros scripts en forma negativa?
</simpara>
</listitem>
<listitem>
<simpara>
¿Serán adecuadamente registradas las transacciones?
</simpara>
</listitem>
</itemizedlist>
</para>
<para>
Al preguntarse adecuadamente estas preguntas mientras escribe su script,
en lugar de hacerlo posteriormente, usted previene una desafortunada
re-implementación del programa cuando desee incrementar el nivel de
seguridad. Al comenzar con esta mentalidad, no garantizará la seguridad de
su sistema, pero puede ayudar a mejorarla.
</para>
<para>
Mejore la seguridad deshabilitando las configuraciones de conveniencia que
oscurecen el origen, la validez o la integridad de los datos de entrada.
La creación implícita de variables y la entrada no verificada pueden llevar a
vulnerabilidades como ataques de inyección y manipulación de datos.
</para>
<para>
Características como <literal>register_globals</literal> y
<literal>magic_quotes</literal> (ambas eliminadas en PHP 5.4.0) contribuyeron
a estos riesgos al crear automáticamente variables a partir de la entrada del
usuario y escapar datos de manera inconsistente. Aunque ya no están en PHP,
riesgos similares persisten si la gestión de la entrada es incorrecta.
</para>
<para>
Habilite <link linkend="function.error-reporting">error_reporting(E_ALL)</link> para
ayudar a detectar variables no inicializadas y validar la entrada. Utilice
tipos estrictos (<link linkend="language.types.declarations.strict">declare(strict_types=1)</link>,
introducido en PHP 7) para imponer la seguridad de tipos, prevenir conversiones
de tipos no intencionadas y mejorar la seguridad general.
</para>
</chapter>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
indent-tabs-mode:nil
sgml-parent-document:nil
sgml-default-dtd-file:"~/.phpdoc/manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->