mizející javascript:foo(); v href

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
Senfix
Člen | 8
+
0
-

Ahoj,

dneska jsem narazil na takovou drobnou komplikaci když jsem do <a href=""> … napsal řetězec javascript:foo(); tak mi ho nette helper smazal. Nevím jestli k tomu je důvod a pokud ne tak stačí jednoduchá změna v \Nette\Templating\Helper

	public static function safeUrl($s)
	{
		return preg_match('~^(?:(?:https?|ftp)://[^@]+(?:/.*)?|(mailto|javascript):.+|[/?#].*|[^:]+)\z~i', $s) ? $s : '';
	}
David Matějka
Moderator | 6445
+
0
-

napsal řetězec javascript:foo();

predpokladam, ze myslis promennou s timto retezcem, ne?

to je zamyslene chovani, obrana proti xss. pokud mas vstup z bezpecneho zdroje, muzes pouzit modifikator |nosafeurl

<a href="{$foo|nosafeurl}">
Aurielle
Člen | 1281
+
0
-

Jen doplním, že bys v žádném případě neměl zasahovat do zdrojáků Nette, pokud nevíš, co děláš.