搜索
热搜: 活动 交友 discuz
查看: 81|回复: 0

PHP文件权限探秘:检查文件是否可执行

[复制链接]

43

主题

52

回帖

339

积分

中级会员

积分
339
发表于 2024-4-9 10:23:25 | 显示全部楼层 |阅读模式
可执行文件在正常情况下是用于执行计算机程序的任务,然而,在某些情况下,这些文件可能会被恶意利用,用于执行有害的操作,如远程代码执行或触发其他险恶的网络攻击。因此,我们应该谨慎对待任何可执行文件的下载和执行,并确保从可靠的来源获取和使用合法的软件。



非常欣慰的是,借助下面提供的补充 PHP 代码示例,我们可以充分利用免费的 API,实现双重安全检测:一方面,它能够扫描文件以识别潜在的恶意软件;另一方面,它还能验证文件格式,从而揭示可执行文件和其他潜在威胁。
通过简单地设置 API 调用中的请求变量,我们可以为不需要的、经过验证的文件类型定制个性化的威胁规则,进一步提高文件安全性的监控和防御能力。
首先,我们着手安装 SDK。为了简化流程,我们推荐使用 Composer 进行安装。只需在命令行中运行以下命令,即可完成安装过程:
composer require cloudmersive/cloudmersive_security_api_client
为了顺利调用我们的API,首先我们需要获取一个免费的Cloudmersive API密钥。这个密钥允许我们每月免费扫描高达800个文件,无需承担任何长期承诺或义务。
接下来,请复制以下代码示例,并根据您的需求构建请求。为了确保安全性,我们可以将allow_executables参数设置为“false”,这样当检测到可执行文件时,API将不会触发执行。相应地,CleanResult也将被设置为“false”。
<?php
require_once(__DIR__ . '/vendor/autoload.php');

// 配置API密钥授权:Apikey
$config = Swagger\Client\Configuration::getDefaultConfiguration()->setApiKey('Apikey', 'YOUR_API_KEY');

$apiInstance = new Swagger\Client\Api\ScanApi(   
    new GuzzleHttp\Client(),
    $config
);
$input_file = "/path/to/inputfile"; // \SplFileObject |要执行操作的输入文件。
$allow_executables = true; // 布尔 |设置为 false 可阻止可执行文件(程序代码)出现在输入文件中。默认为 false(推荐)。
$allow_invalid_files = true;// 布尔 |设置为 false 可阻止无效文件,例如实际上不是有效 PDF 文件的 PDF 文件,或不是有效 Word 文档的 Word 文档。默认为 false(推荐)。
$allow_scripts = true; // 布尔 |设置为 false 可阻止脚本文件,例如 PHP 文件、Python 脚本以及可嵌入文件中的其他恶意内容或安全威胁。设置为 true 以允许这些文件类型。默认为 false(推荐)。
$allow_password_protected_files = true;// 布尔 |设置为 false 可阻止受密码保护和加密的文件,例如加密的 zip 和 rar 文件以及其他试图绕过密码扫描的文件。设置为 true 以允许这些文件类型。默认为 false(推荐)。
$allow_macros = true;  // 布尔 |设置为 false 可阻止文档文件中嵌入的宏和其他威胁,例如 Word、Excel 和 PowerPoint 嵌入宏以及包含嵌入内容威胁的其他文件。设置为 true 以允许这些文件类型。默认为 false(推荐)。
$allow_xml_external_entities = true; // 布尔 |设置为 false 可阻止 XML 外部实体和 XML 文件中嵌入的其他威胁,以及包含嵌入内容威胁的其他文件。设置为 true 以允许这些文件类型。默认为 false(推荐)。
$allow_insecure_deserialization = true; // 布尔 |设置为 false 可阻止 JSON 和其他对象序列化文件以及包含嵌入内容威胁的其他文件中嵌入的不安全反序列化和其他威胁。设置为 true 以允许这些文件类型。默认为 false(推荐)。
$allow_html = true; // 布尔 |设置为 false 以阻止顶级文件中的 HTML 输入;HTML 可能包含 XSS、脚本、本地文件访问和其他威胁。设置为 true 以允许这些文件类型。默认值为 false(推荐)[对于在此功能发布之前创建的 API 密钥,为了向后兼容,默认值为 true]。
$restrict_file_types = "restrict_file_types_example"; // 字符串 |指定一组受限制的文件格式,以允许像逗号分隔的文件格式列表一样干净,例如 .pdf、.docx、.png 只允许 PDF、PNG 和 Word 文档文件。所有文件都必须通过此文件格式列表的内容验证,如果未通过,则结果将以 CleanResult=false 的形式返回。将restrictFileTypes参数设置为null或空字符串以禁用;默认是禁用的。
try {
    $result = $apiInstance->scanFileAdvanced($input_file, $allow_executables, $allow_invalid_files, $allow_scripts, $allow_password_protected_files, $allow_macros, $allow_xml_external_entities, $allow_insecure_deserialization, $allow_html, $restrict_file_types);
    print_r($result);
} catch (Exception $e) {
    echo 'Exception when calling ScanApi->scanFileAdvanced: ', $e->getMessage(), PHP_EOL;
}
?>
我们不仅可以为可执行文件设置规则,还能针对脚本、加密文件、宏等多种其他潜在威胁进行防护。此外,我们的底层安全服务运用先进的签名扫描和预测威胁检测技术,能够识别并应对数百万种病毒和恶意软件威胁。
这就是我们的全面防护策略——借助简单的几行PHP代码,我们就能执行高级威胁扫描,精确识别并揭露隐藏的可执行文件风险。


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|niucloud-admin ( 浙ICP备2021010886号-7 )

GMT+8, 2024-5-19 14:04 , Processed in 0.077129 second(s), 20 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表