Web 服务 URL 中的 SQL 注入作为参数值

Posted

技术标签:

【中文标题】Web 服务 URL 中的 SQL 注入作为参数值【英文标题】:SQL Injection in a Web Service URL as a Parameter Value 【发布时间】:2015-05-28 11:56:49 【问题描述】:

显然,通过消息的负载进行 SQL 注入是一种非常常见的做法,因此涵盖这一点始终是关键(我的代码中已经有)。但是我只是想知道通过 URL 进行 SQL 注入的可能性有多大,以及这是否可以作为 SQL 注入的实际方法。

我将提供一个示例 URL 以更好地详细说明我的问题。如果我有这样一个 URL,其中包含用于注入的 SQL 语句作为其值包含在参数中(请注意,“SELECT”可以是任何 SQL 查询):

https://testurl.com:1234/webservicename?parameter=SELECT

我想知道这是否是有效的方式,这是否真的适用于黑客尝试注入所需 Web 服务的后端,如果是这样,什么是最好的覆盖方式为此?

【问题讨论】:

避免 SQL 注入的最简单方法是 use parameterized stored procedures 并且不要连接或信任来自用户的任何输入。 【参考方案1】:

这与 POST 数据相同。如果它在 php 中,您将在 $_GET['parameter'] 中获得您的值。之后,您可以在构建 SQL 请求之前保护该值。通常,您还需要在字符串值结束时加上引号并编写您自己的请求。 GET 方法并不比 POST 数据安全,永远不要相信来自客户端的数据。这完全取决于您如何保护这些数据。如果它的安全性很好,被黑客入侵就不会破坏任何东西(通过这种方式),如果它不安全或根本不安全,黑客可以注入他的请求。

【讨论】:

以上是关于Web 服务 URL 中的 SQL 注入作为参数值的主要内容,如果未能解决你的问题,请参考以下文章

基础Web漏洞-SQL注入入门(手工注入篇)

SQL注入类型

Golang规避 SQL 注入风险

如何将 JSON 数组作为 URL 中的参数传递

什么是通过iOS中的Web服务url传递带有xml标签的参数的更好方法,目标c

安全技能学习笔记——反射型 XSS SQL 注入 (非盲注)