从实现testcookie-nginx-module的网站生成cookie

时间:2016-11-25 13:21:39

标签: java android url cookies header

这是关于这个答案的以下问题:Link Here

根据该答案,我可以绕过byethost hosting使用的testcookie-nginx-module安全检查。

问题是我使用的cookie是从Web浏览器复制的。我需要从我的网站获取COOKIE,使用我的Android设备,以便我可以使用它在byxost服务器上发出请求。

Byethost提供了一个__test cookie来检查现有会话上请求的有效性,如果看起来我访问服务器的唯一方法是“有效的浏览器”,如何告诉服务器,我是一个Android设备有效的浏览器?这样我就可以将cookie提供给Web浏览器了。

1 个答案:

答案 0 :(得分:1)

我遇到了同样的问题,首先我使用WebView访问页面并获取cookie,使用它来绕过testcookie-nginx-module的安全检查

    WebView myWebView = new WebView(this);
    myWebView.getSettings().setJavaScriptEnabled(true);
    myWebView.loadUrl("my_page_here");

    String cookies = CookieManager.getInstance().getCookie("my_page_here");
    System.out.println(cookies);
    myWebView.destroy();

然后与Volley一起使用,我创建了一个CustomRequest扩展StringRequest并覆盖getHeaders,如下所示:

@Override
public Map<String, String> getHeaders() throws AuthFailureError {
    Map<String, String> params = new HashMap<String, String>();
    params.put("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.135 Safari/537.36 Edge/12.10240 ");
    params.put("Cookie", cookies+"; expires=Fri, 1-Jan-38 06:55:55 GMT; path=/");
    params.put("Content-Type", "application/x-www-form-urlencoded");
    return params;
}

就是这样,你还有其他解决方案吗?如果没有,你可以检查一下:D