【问题标题】:Accessing a specific website return always a 403 Forbidden error访问特定网站总是返回 403 Forbidden 错误
【发布时间】:2022-01-10 01:48:39
【问题描述】:

我尝试使用 Indy 阅读网站 https://www.eroids.com/reviews,但总是得到 403。 这个网站似乎只有在我将 ssl 版本设置为 sslvTLSv1_1 时才会加载。如果我这样做,该网站加载正常,但其他网站不加载。大多数其他人似乎使用 sslvTLSv1_2。 只要我只将 [sslvTLSv1_1] 添加到 sslversion,它就可以工作,但是当我添加 [sslvTLSv1_1, sslvTLSv1_2] 时,提到的站点不再加载(再次 403),但任何其他站点都可以。

我的问题是:如何确定网站需要什么 sslversion?我是否需要尝试使用每个 ssl 版本访问该站点,直到获得 200 回,或者是否有一些我不知道的东西集成到 indy 中以自动执行此操作?

【问题讨论】:

    标签: indy


    【解决方案1】:

    如何确定网站需要什么 sslversion?

    一般来说,你不能。但是,大多数服务器在 TLS 握手期间支持版本协商,因此支持多个/不同 TLS 版本的客户端可以与服务器协商使用哪个 TLS 版本。但是,听起来可能这个特定的服务器不支持。

    然而,你甚至得到一个 HTTPS url 的 HTTP 403 响应这一事实意味着一个 TLS 会话正在创建良好,所以问题是别的。

    除非服务器在握手过程中忽略所有 TLS 错误并创建一个简单的 TLS 会话,否则 THEN 会发送一个 HTTP 错误来回复早期的 TLS 错误。这是罕见的,但并非闻所未闻。

    我是否需要尝试使用每个 ssl 版本访问该网站,直到我得到 200 个返回

    在这种特殊情况下,可能是这样,是的。从[sslvTLSv1_1, sslvTLSv1_2] 开始,如果失败则使用[sslvTLSv1_2] 重试,然后使用[sslvTLSv1_1] 重试,依此类推。

    是否有一些我不知道的东西集成到 indy 中以自动执行此操作?

    Indy 目前没有这种能力,不。

    【讨论】:

    • 已接受答案。非常感谢您的解释。
    猜你喜欢
    • 1970-01-01
    • 2012-05-26
    • 1970-01-01
    • 2023-02-24
    • 1970-01-01
    • 2023-01-20
    • 1970-01-01
    • 1970-01-01
    • 2017-05-15
    相关资源
    最近更新 更多