V2EX 首页   注册   登录

gam2046

  •   V2EX 第 148771 号会员,加入于 2015-11-26 16:00:10 +08:00,今日活跃度排名 1490
    gam2046 最近回复了
    @Suclogger 感谢送上。
    1 天前
    回复了 springGun 创建的主题 Java tomcat"闪退"问题
    检查一下,在退出之前是否 tomcat 占用了大量资源?如果是的话,可能是由于系统资源不足导致系统杀进程,所以 tomcat 没有任何提示。

    之前碰到过一个实习生写的,文件句柄只管开,没有关,然后跑着跑着,tomcat 就被系统杀掉了,也是没有任何提示。
    1 天前
    回复了 mike77546 创建的主题 Android 有多少人在使用 kotlin 啊,各位
    感觉 Kotlin 虽然很多都是语法糖,但是糖很好吃呀。写起来也比 Java 简洁很多。

    我现在是不论个人还是公司项目。不论 Android 还是传统 Java 项目,只要是新开的,都是 Kotlin。反正是兼容 Java 的,学习成本也很低。别人不愿意用 Kotlin,Java 反正也是一样可以用。
    10 天前
    回复了 fengleidongxi 创建的主题 Android 关于网站检测浏览器 UA
    .....这就是响应式布局而已。与你的浏览器的宽高有关。无所谓桌面与移动端的区别。

    你在电脑上用浏览器打开,然后把浏览器宽度缩小,也能看到像手机上那么的界面了。连页面都不用刷新。

    仅此而已。

    新年快乐。我要去登机了。
    10 天前
    回复了 fengleidongxi 创建的主题 Android 关于 AndroidManifest.xml 文件
    app_process 是以当前用户 fork 出来的,因此权限等同于当前进程。所以不存在你说的情况。这和 linux 的权限机制是一样的。

    例如 alipay 通过网络下载回来一个 dex,然后运行,这个 dex 的权限至多与 alipay 一样,不会更多。同样这个 dex 也在 alipay 的虚拟机内,不过其可以申请作为一个独立进程运行,但这与动态加载无关,且作为独立进程运行也是与父进程一样的权限。android 本身就支持这种操作,只需要在 AndroidManifest 中指定 process 参数即可。

    同理,如果你在 adb shell 下手动使用 app_process 启动一个 dex,则该程序的权限与你 shell 权限一致(若你 shell 下是 root 权限,则启动的应用也具有 root 权限)。例如黑域,就是利用这种方式,启动一个 shell 权限的 daemon,以获得普通应用程序以外的权限。但这是需要人工干预的,应用程序并不能自己获得额外的权限。

    以上是建立在 Android 权限体系的情况,如果有存在系统级的越权漏洞,那么以上都不存在了。如果存在这样的漏洞,说什么也白搭,用户侧根本无能为力,只能坐等 Google 或者 OEM 修复。
    10 天前
    回复了 fengleidongxi 创建的主题 Android 关于网站检测浏览器 UA
    @fengleidongxi V2EX 不就是根据 request headers 来判断设备类型的么?有啥黑科技?我这试了试改变这个值就返回的不同页面。
    10 天前
    回复了 fengleidongxi 创建的主题 Android 关于网站检测浏览器 UA
    @fengleidongxi #28

    你首先要明确你的网页跳转时服务端实现(返回 301/302 状态码)还是客户端实现( javascript )的。

    服务端判断只能依赖 HTTP Request Headers 中的 UserAgent
    而客户端 javascript 就有各显神通的方法了。

    最后,你把网址发出来不就好了么?看一眼什么都清楚了。靠意念猜题....有点过了。
    10 天前
    回复了 fengleidongxi 创建的主题 Android 关于网站检测浏览器 UA
    @fengleidongxi #15,UserAgent 在 javascript 上下文中与你发起 http 请求时在 Http Headers 中是不同的。前者可以通过我提供的代码来修改,那么在那个 Context 中获取到的就是被修改后的值,但是该修改并不会影响 Http Request 中的 UserAgent,这个值是由浏览器填充的,可以通过一些浏览器插件修改。而大多数浏览器自带的模拟,会同时修改 javascript 与 Http Request 中的 Useragent。

    @nciyuan #20 Flash 其实现在误伤算是比较大了,因为虽然 Chrome/Firefox 都还没完全放弃 Flash,但是默认都是禁用的。需要用户侧手动允许。在用户没有手动允许的情况,环境都没有 Flash 是一样的。

    @iwtbauh #22 嗯,这个有意思。因为我发现 Chrome 的模拟模式,会自动填充这些触屏事件。所以我自己写了一个 User Script,是这样做的:

    document.documentElement.ontouchstart =
    document.documentElement.ontouchmove =
    document.documentElement.ontouchend =
    document.documentElement.ontouchcancel = function () { };

    ---

    其实原则上要检查是否移动端方法是挺多的,上面各位大佬提到的 platform/flash/touch event/屏幕分辨率等等,综合判断下来应该还是比较准确的。
    10 天前
    回复了 fengleidongxi 创建的主题 Android 关于网站检测浏览器 UA
    @iwtbauh 没使用过带触控输入设备的桌面端设备。所以,这个没有发言权。

    按照这么说,Chrome 会根据计算机上的驱动程序来决定 javascript runtime ?如果你那边有环境的下,试试看这段 javascript 在你说的环境下,是否会返回 true。我以为这种 runtime 的差异是在浏览器编译时期决定的,桌面端浏览器使用触控设备也会触发 mousemove 这些事件。不过,这本来就是奇技淫巧,应该在大多数场景下,还是比较具有参考性的

    ('ontouchstart' in document.documentElement)
    10 天前
    回复了 fengleidongxi 创建的主题 Android 关于网站检测浏览器 UA
    @fengleidongxi 移动端,听说 Firefox 是支持插件的,你可以试试。由于我自己中 Google 毒颇深,所以没在移动端用过 Firefox。包括有一些第三方个人开发者的浏览器也是支持插件的,也可以尝试。如果这些都不行,其实就比较麻烦了,方法依然有,但实际上没有可操作性。

    比如可以移动设备上开 VPN 连接本地,并安装自签证书,以进行中间人攻击,劫持 http/https 请求。

    不过我并没有看到过有类似的软件,有这方面功能的都是开发工具,通常用于抓包,并没有篡改的功能。

    话说回来,其实网站想知道是否为移动平台,有挺多奇技淫巧。比如桌面端的浏览器通常都不支持 HLS,而移动端支持。又比如桌面端浏览器在使用过程中不会出现触屏事件( touchstart/touchend/touchmove ),而移动端不会数显鼠标相关事件( mousedown/mousemove/mouseup )。所以这个其实是看网站方愿意花多大力气来检测,只要想,总是有一些出其不意的点能查出来。
    DigitalOcean
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   鸣谢   ·   1898 人在线   最高记录 3541   ·  
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.0 · 24ms · UTC 11:45 · PVG 19:45 · LAX 03:45 · JFK 06:45
    ♥ Do have faith in what you're doing.
    沪ICP备16043287号-1