Ich muss Cross-Site-Scripting (XSS) verhindern. Wie kann ich bestätigen, dass es sich nicht um ein Cross-Site-Skript handelt? Das Problem ist mit meinem "URL" BBCode.PHP preg_replace Sicherheit
function bbcode($input) {
$search = array('/\[a url="(.+?)"\](.*?)\[\/a\]/is');
$replace = array('<a href="$1" style="color: #337ab7;
text-decoration: none" target="_blank">$2
</a>');
return preg_replace($search, $replace, $input);
}
bbcode([a url="javascript://hello.com/%0Aalert(%27s%27)"]XSS[/url]);
Der obige Code ist ein Beispiel dafür, was passiert. Wenn Sie auf den Link klicken, wird ein JavaScript-Popup angezeigt. Außerdem gibt es mehr BBCode in diesem Array, aber ich habe sie entfernt, wenn ich das gepostet habe, um es einfacher zu machen.
Sie können dies vor https://www.owasp.org/index.php/XSS_%28Cross_Site_Scripting%29_Prevention_Cheat_Sheet lesen –
Hat mir nicht wirklich so viel geholfen. – SecureServer
Ich muss andere Benutzer daran hindern, Cross-Site-Injektionen mit anderen Sites zu posten. – SecureServer