例如,某人是否可以通过 URL 执行代码
http://localhost/page.php?code=echo 'something';
如果是,那么如何做到这一点以及如何防止它发生?
如果服务器上的某些东西获取 URL 中的数据并将其放在可能被视为代码的某个地方(例如,在eval
语句中、在 SQL 查询中或在 HTML 文档中),这是可能的。
防御都特定于您放置数据的位置,但通常涉及转义它。
另请参阅SQL 注入、XSS和开放式 Web 应用程序安全项目。
看了一会儿,我发现 eval 是一个函数,它能够像上面的示例一样执行 GET 中提供的任何 php 代码,我使用以下代码对其进行测试。
<?php
$code = $_REQUEST['code'];
eval($code);
?>