2

可能重复:
绕过 Chrome 的恶意文件警告

代码:

    /* 
     .... Code to authenticate to my mysql and verify that we are an legal user.
    */
    $type = mysql_result($AllResult, 0, 'file_type');
    $size = mysql_result($AllResult, 0, 'file_size');
    $name = mysql_result($AllResult, 0, 'file_name');
    $data = mysql_result($AllResult, 0, 'file_content');

    session_write_close();
    ob_clean();
    mysql_close();

    header("Content-Transfer-Encoding: binary");
    header("Content-type: $type");
    header("Content-length: $size");
    header("Content-Disposition: attachment;filename=$name");
    header("Content-Description: PHP Generated Data");
    echo "$data";

我制作了一个 PHP 代码,用于从数据库中的 longblob 下载文件并将其保存到用户计算机。此代码在 Opera 和 Firefox 上运行良好。但是,在 IE 和 google chrome 上 - 如果程序没有 Microsoft SmartScreen 许可证 - 它会提示对话框“...名称...不常下载,可能会损害您的计算机”

插图:

没有许可证的样子

然而; 我想知道是否可以更改标题,或者是否可以获取对话框“此文件可能会损害您的计算机。你想保留......无论如何?[保持丢弃]

我正在谈论的对话框的插图: 丢弃/保留

更新:我尝试对我的 Content-Disposition 使用内联和附件,结果相同

4

1 回答 1

0

至少从 Chrome 端,将无法禁用此通知。您看到“这种类型的文件可能会损害您的计算机”,因为您下载的扩展名是可执行的(即 .exe、.dll 等)。这可能也是微软的情况。我知道如果文件是“经常下载的”(即他们看到很多人下载相同的文件),微软的系统将不再抱怨。如果有可以绕过此通知的标头,将对用户不利。

您可以完全避免这种情况,方法是确保您的下载名称具有不可执行的扩展名,例如 .txt、.html 等,因此通常不会被浏览器供应商视为高优先级威胁。

于 2012-09-27T15:18:40.020 回答