我正在创建一个网站,我将所有基于HTML的页面存储在mysqli database
中,我遇到了这个问题,我无法使用{执行我的PHP代码{1}}。所以我找到了这个解决方案,我必须使用echo
来运行我的PHP代码,我听说如果你没有正确验证它可能会非常危险。
eval();
到目前为止,这是我如何验证它,这是否足够安全?
注意:当我从数据库请求信息时,会使用该行代码,以便在页面上显示。
对不起,如果我没有足够好地解释自己,我还是新手。 :)
这就是我从数据库中获取页面的方式。
$firstname = htmlspecialchars($mysqli->real_escape_string($row['firstname']));
答案 0 :(得分:2)
real_escape_string只删除可能用于SQL注入的任何字符。如果您将用户输入作为PHP代码执行,则可以为您的用户提供与PHP脚本相同的可能性。例如,包括运行系统命令以从服务器中删除所有文件。
你不想这样做。你提到的那个特例,你能详细说明吗?对您的问题可能有更好的解决方案。
答案 1 :(得分:1)
我只想说你在这里做了两件通常被认为是不良行为的事情。
这两个都是坏主意,几乎肯定会在某些时候咬你的屁股。
你想做什么?