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
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
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}">