Examples:
Use of this modifier is discouraged, as it can easily introduce security vulnerabilites:
<?php $html = $_POST['html']; // uppercase headings $html = preg_replace( '(<h([1-6])>(.*?)</h\1>)e', '"<h$1>" . strtoupper("$2") . "</h$1>"', $html );
The above example code can be easily exploited by passing in a string such as <h1>{${eval($_GET[php_code])}}</h1>. This gives the attacker the ability to execute arbitrary PHP code and as such gives him nearly complete access to your server.
To prevent this kind of remote code execution vulnerability the preg_replace_callback() function should be used instead:
<?php $html = $_POST['html']; // uppercase headings $html = preg_replace_callback( '(<h([1-6])>(.*?)</h\1>)', function ($m) { return "<h$m[1]>" . strtoupper($m[2]) . "</h$m[1]>"; }, $html );
Please login to continue.