<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="es">
	<id>https://manuais.iessanclemente.net/index.php?action=history&amp;feed=atom&amp;title=Curso_POO_PHP_Configuraci%C3%B3n_segura_de_PHP</id>
	<title>Curso POO PHP Configuración segura de PHP - Historial de revisiones</title>
	<link rel="self" type="application/atom+xml" href="https://manuais.iessanclemente.net/index.php?action=history&amp;feed=atom&amp;title=Curso_POO_PHP_Configuraci%C3%B3n_segura_de_PHP"/>
	<link rel="alternate" type="text/html" href="https://manuais.iessanclemente.net/index.php?title=Curso_POO_PHP_Configuraci%C3%B3n_segura_de_PHP&amp;action=history"/>
	<updated>2026-10-26T13:26:09Z</updated>
	<subtitle>Historial de revisiones de esta página en la wiki</subtitle>
	<generator>MediaWiki 1.46.2</generator>
	<entry>
		<id>https://manuais.iessanclemente.net/index.php?title=Curso_POO_PHP_Configuraci%C3%B3n_segura_de_PHP&amp;diff=36434&amp;oldid=prev</id>
		<title>Vlourido en 17:14 18 jul 2013</title>
		<link rel="alternate" type="text/html" href="https://manuais.iessanclemente.net/index.php?title=Curso_POO_PHP_Configuraci%C3%B3n_segura_de_PHP&amp;diff=36434&amp;oldid=prev"/>
		<updated>2013-07-18T17:14:50Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Página nueva&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== Configuración segura de PHP ==&lt;br /&gt;
&lt;br /&gt;
Na configuración de PHP temos algunhas directivas que nos permiten restrinxir certas características da linguaxe para aumentar a súa seguridade:&lt;br /&gt;
&lt;br /&gt;
=== Deshabilitar funcións e clases ===&lt;br /&gt;
&lt;br /&gt;
As directivas &amp;#039;&amp;#039;&amp;#039;[http://www.php.net/manual/en/ini.core.php#ini.disable-functions disable_functions]&amp;#039;&amp;#039;&amp;#039; e &amp;#039;&amp;#039;&amp;#039;[http://www.php.net/manual/en/ini.core.php#ini.disable-classes disable_clases]&amp;#039;&amp;#039;&amp;#039; permiten deshabilitar funcións que consideremos que poderían supor un risco de seguridade.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;disable_functions&amp;#039;&amp;#039;&amp;#039; recibe como parámetro unha lista separada por comas cos nomes das funcións a deshabilitar. Por exemplo:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
disable_functions = exec,passthru,shell_exec,system,proc_open,popen,curl_exec,curl_multi_exec,parse_ini_file,show_source&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;disable_classes&amp;#039;&amp;#039;&amp;#039; é similar, pero recibe como parámetro unha lista de nomes de clases.&lt;br /&gt;
&lt;br /&gt;
=== Restrinxir a execución de código remoto ===&lt;br /&gt;
&lt;br /&gt;
Un potencial risco de seguridade é a execución no noso servidor de código remoto. Isto podería facerse empregando include, include_once, require ou require_once indicando como destino unha URL. Pódese desahabilitar a utilización de URLs nas sentenzas anteriores empregando a directiva &amp;#039;&amp;#039;&amp;#039;[http://www.php.net/manual/es/filesystem.configuration.php#ini.allow-url-include allow_url_include]&amp;#039;&amp;#039;&amp;#039; (xa ven deshabilitado na configuración por defecto de PHP).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
allow_url_include = Off&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Outra posibilidade é empregar &amp;#039;&amp;#039;&amp;#039;fopen&amp;#039;&amp;#039;&amp;#039; pasando como parámetro unha URL para abrir un recurso externo. A directiva &amp;#039;&amp;#039;&amp;#039;[http://www.php.net/manual/es/filesystem.configuration.php#ini.allow-url-fopen allow_url_fopen]&amp;#039;&amp;#039;&amp;#039; desactiva a utilización de envolturas de tipo URL, como &amp;lt;nowiki&amp;gt;http:// ou ftp://&amp;lt;/nowiki&amp;gt;, o que afecta tamén ao comportamento das sentenzas include, include_once, require e require_once (ven habilitado na configuración por defecto de PHP).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
allow_url_fopen = Off&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Minimizar a información dispoñible aos usuarios ===&lt;br /&gt;
&lt;br /&gt;
No apartado de [[Curso POO PHP Xestión de erros|xestión de erros]] xa se viron duas directivas de configuración que afectan á información que reciben os usuarios cando se produce algún tipo de erro na execución dos scripts: &amp;#039;&amp;#039;&amp;#039;[http://www.php.net/manual/es/function.error-reporting.php error_reporting]&amp;#039;&amp;#039;&amp;#039; e &amp;#039;&amp;#039;&amp;#039;[http://www.php.net/manual/es/errorfunc.configuration.php#ini.display-errors display_errors]&amp;#039;&amp;#039;&amp;#039;. &lt;br /&gt;
&lt;br /&gt;
Ademáis existe outra directiva, &amp;#039;&amp;#039;&amp;#039;[http://www.php.net/manual/es/ini.core.php#ini.expose-php expose_php]&amp;#039;&amp;#039;&amp;#039;, que convén axustar para evitar dar publicidade ao feito de que PHP se atopa instalado no servidor.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
error_reporting = E_ALL &amp;amp; ~E_DEPRECATED &amp;amp; ~E_STRICT&lt;br /&gt;
display_errors = Off&lt;br /&gt;
expose_php = Off&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Control de recursos ===&lt;br /&gt;
&lt;br /&gt;
É unha boa práctica limitar os recursos que consumen os nosos scripts, pensando en evitar posibles ataques de denegación de servizo (DOS) ou as consecuencias non desexadas de fallos na programación. En PHP podemos empregar, entre outras, as seguintes directivas:&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;[http://www.php.net/manual/es/info.configuration.php#ini.max-execution-time max_execution_time]&amp;#039;&amp;#039;&amp;#039;. Tempo máximo en segundos que pode estar executándose un script.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;[http://www.php.net/manual/es/info.configuration.php#ini.max-input-time max_input_time]&amp;#039;&amp;#039;&amp;#039;. Tempo máximo en segundos que o script pode estar analizando os datos recibidos, como os que proveñen dos formularios.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;[http://www.php.net/manual/es/ini.core.php#ini.memory-limit memory_limit]&amp;#039;&amp;#039;&amp;#039;. Límite de memoria en bytes que pode consumir un script.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
max_execution_time = 30&lt;br /&gt;
max_input_time = 60&lt;br /&gt;
memory_limit = 128M&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Control do acceso ao sistema de ficheiros ===&lt;br /&gt;
&lt;br /&gt;
Tamén é posible limitar as rutas ás que pode acceder PHP para ler ou escribir ficheiros. Faise definindo a directiva &amp;#039;&amp;#039;&amp;#039;[http://www.php.net/manual/es/ini.core.php#ini.open-basedir open_basedir]&amp;#039;&amp;#039;&amp;#039;. O seu valor é unha cadea de texto coas rutas ás que se permite o acceso (separadas unha da outra polo caracter &amp;quot;:&amp;quot;, ou por &amp;quot;;&amp;quot; en sistemas Windows).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
open_basedir = &amp;quot;/xampp/php/tmp;/xampp/htdocs/execicios&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Subida de ficheiros ===&lt;br /&gt;
&lt;br /&gt;
Por defecto PHP permite que se empregue HTTP para subir ficheiros ao servidor. Se non imos a empregar esta característica nos nosos scripts, convén desactivala mediante a directiva &amp;#039;&amp;#039;&amp;#039;[http://www.php.net/manual/es/ini.core.php#ini.file-uploads file_uploads]&amp;#039;&amp;#039;&amp;#039;. Outras directivas como &amp;#039;&amp;#039;&amp;#039;[http://www.php.net/manual/es/ini.core.php#ini.upload-max-filesize upload_max_filesize]&amp;#039;&amp;#039;&amp;#039; ou &amp;#039;&amp;#039;&amp;#039;[http://www.php.net/manual/es/ini.core.php#ini.max-file-uploads max_file_uploads]&amp;#039;&amp;#039;&amp;#039; permiten por límites ás subidas de ficheiros no caso de que estean permitidas.&lt;br /&gt;
&lt;br /&gt;
Para desactivar as subidas de ficheiros:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
file_uploads = Off&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Para activalas con certos límites:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
file_uploads = On&lt;br /&gt;
upload_max_filesize = 2M&lt;br /&gt;
max_file_uploads = 5&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tamén é posible definir coa directiva &amp;#039;&amp;#039;&amp;#039;[http://www.php.net/manual/es/ini.core.php#ini.post-max-size post_max_size]&amp;#039;&amp;#039;&amp;#039; a cantidade máxima de datos a enviar nunha mensaxe POST de HTTP.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
post_max_size = 2M&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Características de seguridade obsoletas ===&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Modo seguro&amp;#039;&amp;#039;&amp;#039;. Nas versións de PHP anteriores á 5.4, existía unha directiva de configuración chamada &amp;#039;&amp;#039;&amp;#039;[http://docs.php.net/manual/es/features.safe-mode.php safe_mode]&amp;#039;&amp;#039;&amp;#039;, que limitaba a utilización de algunhas funcións da linguaxe consideradas potencialmente inseguras. Esta directiva pasou a considerarse obsoleta en PHP5.3, desaparecendo na seguinte versión, 5.4. A súa utilización hoxe en día xera un erro fatal na execución do código.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Comiñas máxicas&amp;#039;&amp;#039;&amp;#039;. Tamén ata a versión PHP5.4 estivo activa a directiva &amp;#039;&amp;#039;&amp;#039;[http://www.php.net/manual/es/security.magicquotes.php magic_quotes]&amp;#039;&amp;#039;&amp;#039;, que cando estaba habilitado limpiaba de forma automática os datos de entrada que recollían os formularios dos scripts.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Variables globais automáticas&amp;#039;&amp;#039;&amp;#039; . E nesa mesma versión de PHP, a 5.4, eliminouse tamén definitivamente da configuración, por razóns de seguridade, a directiva &amp;#039;&amp;#039;&amp;#039;[http://www.php.net/manual/es/security.globals.php register_globals]&amp;#039;&amp;#039;&amp;#039;, que introducía nos scripts como variables globais todo tipo de información, como as variables que se obteñen dos formularios.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
--[[Usuario:Vlourido|Víctor Lourido]] 14:24 18 jul 2013 (CEST)&lt;/div&gt;</summary>
		<author><name>Vlourido</name></author>
	</entry>
</feed>