Skip to content

Commit 83ac100

Browse files
authored
Expand caution note in parse_url and reference ext/uri (#490)
1 parent 9953e96 commit 83ac100

1 file changed

Lines changed: 24 additions & 9 deletions

File tree

‎reference/url/functions/parse-url.xml‎

Lines changed: 24 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
<?xml version="1.0" encoding="utf-8"?>
2-
<!-- EN-Revision: 4266e03897e77751a6cf7d15f9556c92124d8df3 Maintainer: PhilDaiguille Status: ready -->
2+
<!-- EN-Revision: b3194d54645b22d5f229fcac3b4baf0d7b85ac8d Maintainer: PhilDaiguille Status: ready -->
33
<!-- Reviewed: no -->
44
<refentry xml:id="function.parse-url" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
55
<refnamediv>
@@ -26,14 +26,29 @@
2626
<function>parse_url</function> hará todo lo posible para analizarlas correctamente.
2727
</para>
2828
<caution>
29-
<para>
30-
Esta función puede no proporcionar resultados correctos para URL relativas o inválidas y los resultados pueden no coincidir con
31-
el comportamiento estándar de los clientes HTTP.
32-
Si se deben analizar URL provenientes de la entrada del usuario,
33-
se requieren verificaciones adicionales, por ejemplo utilizando
34-
<function>filter_var</function> con el filtro
35-
<constant>FILTER_VALIDATE_URL</constant>.
36-
</para>
29+
<simpara>
30+
Esta función no sigue ningún estándar URI o URL establecido.
31+
Devolverá resultados incorrectos o sin sentido para URL relativas o
32+
malformadas. Incluso para URL válidas, el resultado puede diferir del de
33+
otro analizador de URL, ya que existen múltiples estándares diferentes
34+
relacionados con las URL que se dirigen a diferentes casos de uso y que
35+
difieren en sus requisitos.
36+
</simpara>
37+
<simpara>
38+
El procesamiento de una URL con analizadores que siguen diferentes estándares
39+
de URL es una fuente común de vulnerabilidades de seguridad. Por ejemplo,
40+
la validación de una URL contra una lista de nombres de host permitidos con
41+
el analizador A podría ser ineficaz cuando la recuperación real del recurso
42+
utiliza el analizador B que extrae los nombres de host de manera diferente.
43+
</simpara>
44+
<simpara>
45+
Las clases <classname>Uri\Rfc3986\Uri</classname> y <classname>Uri\WhatWg\Url</classname>
46+
siguen estrictamente los estándares RFC 3986 y WHATWG URL respectivamente.
47+
Se recomienda encarecidamente utilizar estas clases para todo el código nuevo
48+
y migrar los usos existentes de la función <function>parse_url</function>
49+
a estas clases, a menos que el comportamiento de <function>parse_url</function>
50+
deba preservarse por razones de compatibilidad.
51+
</simpara>
3752
</caution>
3853
</refsect1>
3954

0 commit comments

Comments
 (0)