1
0
mirror of https://github.com/php/doc-es.git synced 2026-03-25 16:02:13 +01:00
Files
archived-doc-es/security/variables.xml
2010-04-23 02:53:01 +00:00

106 lines
3.4 KiB
XML

<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: ab6785b01ce1006e3a9761988575289f40c9b678 Maintainer: yago Status: ready -->
<!-- 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 ($variable_malvada);
// Imprimir el registro del acceso... ¿o quizás una entrada de /etc/passwd?
fwrite ($desc_archivo, $variable_malvada);
// Ejecutar algo trivial.. ¿o rm -rf *?
system ($variable_malvada);
exec ($variable_malvada);
?>
]]>
</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>
Puede que también desee considerar la deshabilitación de register_globals,
magic_quotes, u otros parámetros convenientes que pueden causar confusión
sobre la validez, fuente o valor de una determinada variable. Trabajar con
<acronym>PHP</acronym> en modo error_reporting(E_ALL) también puede ayudarle a advertir
variables que están siendo usadas antes de ser chequeadas o inicializadas
(de modo que puede prevenir que datos inusuales produzcan operaciones
inadvertidas).
</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
-->