Mobile app version of vmapp.org
Login or Join
Cofer257

: Pass IMG SRC via GET and echo it? Is that really secure? I was wondering how I can make a really simple GET and echo request more secure The code: $src = $_GET['src']; echo "<img src='$src'

@Cofer257

Posted in: #Php #QueryString #Security #Xss

I was wondering how I can make a really simple GET and echo request more secure

The code:

$src = $_GET['src'];
echo "<img src='$src' />";


Basically, I have a URL like example.com/link.php?src=imgname.jpg

Theoretically, I think it's possible to exploit it by inserting external URL's and trying to get them parsed on the site. Would you recommend doing a preg_match to only allow images and remove URLS?

10.01% popularity Vote Up Vote Down


Login to follow query

More posts by @Cofer257

1 Comments

Sorted by latest first Latest Oldest Best

 

@BetL925

You have implemented a Cross Site Scripting (XSS) vulnerability. This type of injection vulnerability can be used by an attacker to steal the credentials of your users, or make users perform actions on your site or against other sites without their knowledge. For more information about XSS see wikipedia: en.wikipedia.org/wiki/Cross-site_scripting
Your vulnerability could be expoited by somebody using a src parameter that closes img tag and then inserts javascript into the page. Something like:

'/><script>alert('hello world')</script>


So YES, you should validate your input. Match it against a regular expression using preg_match such as

^[a-zA-Z0-9-_]+.(jpg|gif)$


You should also escape strings that are outputted to html using the htmlspecialchars function in php.

$src = htmlspecialchars($src, ENT_QUOTES);
echo "<img src='$src' />";

10% popularity Vote Up Vote Down


Back to top | Use Dark Theme