过滤 SQL 注入的 URL 查询字符串 - PHP

发布于 2024-10-10 04:07:00 字数 261 浏览 6 评论 0原文

我收到一个需要修复的网站,该网站最近被 SQL 注入攻击。据我所知,Havij 自动 SQL 注入器用于将代码插入到 url 的查询字符串参数中。

该网站是一个定制的 CMS 构建,有点过时。我认为全面重建是不可能的。

防止这种情况再次发生的最佳方法是什么?我是一名 PHP 开发人员,但通常只是对表单进行验证,或者使用已经内置此功能的系统 - wordpress、codeigniter、drupal 等。

任何想法或想法都会受到赞赏。

谢谢

I've been given a site to fix that was recently hacked using SQL injection. From what I can gather the Havij automated SQL injector was used to insert code into the query string parameters of the url.

The site is a custom CMS build and a bit dated. I don't think a full rebuild is likely.

What's the best way to prevent this from occurring again? I'm a PHP developer, but usually just do validations on forms, or use systems that have this functionality already built in - wordpress, codeigniter, drupal etc.

Any ideas or thoughts are appreciated.

Thanks

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

梦途 2024-10-17 04:07:00

只有一个简单的规则:放入 sql 查询中的每个变量(无论它来自哪里 - 来自用户还是已经从数据库获取的内容)都应该使用 <代码>mysql_real_escape_string()之前。

或者您可以使用准备好的查询(准备好的语句/占位符),这并不重要。

There is only one simple rule: every variable (doesn't matter where it came from - from user or it is something already gotten from database) that is being put into the sql query should be sanitized with mysql_real_escape_string() before.

Or you could use prepared queries (prepared statements/placeholders), doesn't matter.

陈独秀 2024-10-17 04:07:00

您可能无法更改所有代码,但也许您可以更改数据库代码。如果是这样,请尝试使用 PDO 和准备好的语句。我推荐 pdo 因为你没有指定数据库类型。如果你使用mysql,我认为mysqli也提供了准备好的语句。

You may not be able to change all of the code, but maybe you can change the database code. If so try using PDO and prepared statements. I recommend pdo because you didn't specify the database type. If you are using mysql, I think mysqli also provides prepared statements.

菩提树下叶撕阳。 2024-10-17 04:07:00

$url = filter_var($url, FILTER_SANITIZE_URL);

$url = filter_var($url, FILTER_SANITIZE_URL);

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文