【问题标题】:403 Forbidden Error when I try to pass "param_name=to_char('<date>', '<date_format>')" in URL当我尝试在 URL 中传递“param_name=to_char('<date>', '<date_format>')”时出现 403 禁止错误
【发布时间】:2015-09-28 15:07:34
【问题描述】:

一般来说,我知道在 URL 中传递带有 SQL 语法的东西是个坏主意,但对于这种情况,我可以这样做。但是,我发现在 URL 中传递看起来像 param_name=to_char('&lt;date&gt;', '&lt;date_format&gt;') 的值非常困难,因为我会立即返回 403(禁止)错误。我正在检查我的基于 Java 企业的应用程序的日志,但没有运行任何东西。似乎 Web 应用程序服务器本身在访问我的代码之前就阻止了这些 URL。

URL 的形成方式有问题吗?是否可能违反了某些 URL 语法?

为了让您更清楚我正在处理的内容,以下是我得到的回复:

> HTTP/1.1 403 Forbidden Date: Fri, 25 Sep 2015 21:25:07 GMT
> Content-Length: 254 Keep-Alive: timeout=5, max=500 Connection:
> Keep-Alive Content-Type: text/html; charset=iso-8859-1

403禁止

禁止

你 无权访问 // 在这台服务器上。

【问题讨论】:

    标签: sql http url


    【解决方案1】:

    当在 URL 中使用某些保留字符时,它们必须进行“百分比编码”。您在客户端使用的库可能提供了一个实用功能来为您执行此操作。如果您对血腥细节感兴趣,请参阅RFC 3986.

    【讨论】:

    • 如果您显示您发送的确切请求会有所帮助。
    • GET //select.parameterized.snow.code?end_date=to_date('2015-09-25'%2C+'YYYY-MM-DD')&start_date=to_date(' 2015-09-18'%2C+'YYYY-MM-DD')&_=1443216294272 HTTP/1.1
    • to_date('2015-09-25'%2C+'YYYY-MM-D‌​D') -- 看起来空间被编码为加号,这可能会混淆您的堆栈中的某些内容。尝试删除空格或在客户端上执行任何必要的操作以将其编码为 %20。
    • 删除空间似乎没有帮助
    猜你喜欢
    • 2021-02-27
    • 1970-01-01
    • 1970-01-01
    • 2020-02-17
    • 2013-03-02
    • 1970-01-01
    • 2016-10-22
    • 2012-11-25
    • 1970-01-01
    相关资源
    最近更新 更多