Skip to content

Latest commit

 

History

History
1930 lines (1437 loc) · 177 KB

readme.ar.md

File metadata and controls

1930 lines (1437 loc) · 177 KB

phpMussel v3 بالعربية

المحتويات:

Regarding translations: My native language is English. Because this is a free and open-source hobby project which generates zero income, and translatable content is likely to change as the features and functionality supported by the project changes, it doesn't make sense for me to spend money for translations. Because I'm the sole author/developer/maintainer for the project and I'm not a ployglot, any translations I produce are very likely to contain errors. Sorry, but realistically, that won't ever change. If you find any such errors/typos/mistakes/etc, your assistance to correct them would be very much appreciated. Pull requests are invited and encouraged. Otherwise, if you find these errors too much to handle, just stick with the original English source. If a translation is irredeemably incomprehensible, let me know which, and I can delete it. If you're not sure how to perform pull requests, ask. I can help.


١. مقدمة

شكراً لك على إستخدام phpMussel، المبرمج بلغة PHP للكشف عن ملفات الإختراق والفيروسات والبرمجيات الخبيثة الموجودة حيث يعتمد السكربت على توقيعات ClamAV وغيرها.

حقوق النشر محفوظة ل PHPMUSSEL لعام ٢٠١٣ وما بعده تحت رخصة GNU/GPLv2 للمبرمج Caleb M (Maikuolan).

هذا البرنامج مجاني، يمكنك تعديله وإعادة نشره تحت رخصة GNU. نشارك هذا السكربت على أمل أن تعم الفائدة لكن لا نتحمل أية مسؤولية أو أية ضمانات لاستخدامك، اطلع على تفاصيل رخصة GNU للمزيد من المعلومات عبر الملف "LICENSE.txt" وللمزيد من المعلومات:
- . - .
شكر خاص لClamAV لكل من الإلهام للمشروع والتواقيع التي يعمد عليها السكربت، والتي من دونها كان من الممكن أن لا يتم إنجاز هذا البرنامج أو بأفضل الأحوال ستكون قيمته محدودة جداً.

شكر خاص أيضاً ل GitHub و Bitbucket لإستضافتهم ملفات المشروع، وأيضاً لمصادر التوقيعات التي يستخدمها phpMussel مثل: PhishTank و NLNetLabs و Malware.Expert وغيرهم، والشكر مقدم لكل من يدعم المشروع وشكراً لك لاستخدامك للسكربت.


٢. كيفية التحميل

٢.٠ تثبيت مع COMPOSER

الطريقة الموصى بها لتثبيت phpMussel v3 هي من خلال Composer.

من أجل الراحة، يمكنك تثبيت تبعيات phpMussel الأكثر شيوعًا عبر مستودع phpMussel الرئيسي القديم:

composer require phpmussel/phpmussel

بدلاً من ذلك، يمكنك اختيار التبعيات التي ستحتاجها بشكل فردي عند التنفيذ. من المحتمل جدًا أنك ستحتاج فقط إلى تبعيات محددة ولن تحتاج إلى كل شيء.

من أجل القيام بأي شيء باستخدام phpMussel، ستحتاج إلى قاعدة التعليمات البرمجية phpMussel الأساسية:

composer require phpmussel/core

يوفر منشأة إدارية أمامية لـ phpMussel:

composer require phpmussel/frontend

يوفر فحصًا تلقائيًا لتحميل الملفات لموقعك على الويب:

composer require phpmussel/web

يوفر القدرة على استخدام phpMussel كتطبيق تفاعلي لوضع CLI:

composer require phpmussel/cli

يوفر جسرًا بين phpMussel و PHPMailer، مما يمكّن phpMussel من استخدام PHPMailer للمصادقة الثنائية، وإشعار البريد الإلكتروني حول تحميل الملفات المحظورة، وما إلى ذلك:

composer require phpmussel/phpmailer

لكي يتمكن phpMussel من اكتشاف أي شيء، ستحتاج إلى تثبيت التوقيعات. لا توجد حزمة محددة لذلك. لتثبيت التوقيعات، راجع القسم التالي من هذا المستند.

بدلاً من ذلك، إذا كنت لا تريد استخدام Composer، فيمكنك تنزيل ملفات ZIP المعبأة مسبقًا من هنا:

https://github.com/phpMussel/Examples

تتضمن ملفات ZIP المعبأة مسبقًا جميع التبعيات المذكورة أعلاه، بالإضافة إلى جميع ملفات توقيع phpMussel القياسية، إلى جانب بعض الأمثلة المقدمة حول كيفية استخدام phpMussel في التنفيذ.

٢.١ تثبيت التوقيعات

التوقيعات مطلوبة من قبل phpMussel للكشف عن تهديدات محددة. هناك 2 طرق رئيسية لتثبيت التوقيعات:

  • ١. توليد التوقيعات باستخدام "SigTool" وتثبيت يدويا.
  • ٢. تحميل التوقيعات من "phpMussel/Signatures"أو "phpMussel/Examples" وتثبيت يدويا.
٢.١.٠ توليد التوقيعات باستخدام "SigTool" وتثبيت يدويا.
لاحظ أيضًا: يعالج SigTool التوقيعات من ClamAV فقط. من أجل الحصول على التوقيع من مصادر أخرى، مثل تلك المكتوبة خصيصًا لـ phpMussel، والتي تتضمن التوقيعات اللازمة للكشف عن عينات اختبار phpMussel، يجب استكمال هذه الطريقة بإحدى الطرق الأخرى المذكورة هنا.

٢.١.١ تحميل التوقيعات من "phpMussel/Signatures"أو "phpMussel/Examples" وتثبيت يدويا.
أولا، اذهب إلى phpMussel/Signatures. يحتوي المستودع على ملفات توقيع GZ مضغوط مختلفة. تحميل الملفات التي تحتاج إليها، فك ضغطها، ونسخها إلى دليل التوقيعات من التثبيت الخاص بك.

كبديل، قم بتنزيل أحدث ملف ZIP من phpMussel/Examples. يمكنك بعد ذلك نسخ/لصق التوقيعات من هذا الأرشيف إلى التثبيت الخاص بك.


٣. كيفية الإستخدام

٣.٠ CONFIGURING PHPMUSSEL

بعد تثبيت phpMussel، ستحتاج إلى ملف تكوين بحيث يمكنك تكوينه. يمكن تهيئة ملفات التكوين phpMussel كملفات INI أو YML. إذا كنت تعمل من أحد ملفات ZIP النموذجية، فسيكون لديك بالفعل مثالان لملفات التكوين المتاحة، phpmussel.ini و phpmussel.yml؛ يمكنك اختيار واحد من هؤلاء للعمل منه، إذا كنت ترغب في ذلك. إذا كنت لا تعمل من أحد ملفات ZIP النموذجية، فستحتاج إلى إنشاء ملف جديد.

إذا كنت راضيًا عن التكوين الافتراضي لـ phpMussel ولا تريد تغيير أي شيء، يمكنك استخدام ملف فارغ كملف التكوين الخاص بك. أي شيء لم تتم تهيئته بواسطة ملف التهيئة الخاص بك سيستخدم الإعداد الافتراضي الخاص به، لذلك لن تحتاج إلا إلى تكوين شيء بشكل صريح إذا كنت تريد أن يكون مختلفًا عن الإعداد الافتراضي الخاص به (بمعنى أن ملف تكوين فارغ سيتسبب في أن يستخدم phpMussel جميع إعداداته الافتراضية).

إذا كنت تريد استخدام الواجهة الأمامية phpMussel، فيمكنك تكوين كل شيء من صفحة تكوين الواجهة الأمامية. ولكن، نظرًا لأن الإصدار v3 فصاعدًا، يتم تخزين معلومات تسجيل الدخول للجهة الأمامية في ملف التهيئة، لذلك لتسجيل الدخول إلى الواجهة الأمامية، ستحتاج على الأقل إلى تكوين حساب لاستخدامه لتسجيل الدخول، وبعد ذلك، من هناك، ستتمكن من تسجيل الدخول واستخدام صفحة تكوين الواجهة الأمامية لتكوين كل شيء آخر.

ستضيف المقتطفات أدناه حسابًا جديدًا للواجهة الأمامية باسم المستخدم "admin" وكلمة المرور "password".

لملفات INI:

[user.admin]
password='$2y$10$FPF5Im9MELEvF5AYuuRMSO.QKoYVpsiu1YU9aDClgrU57XtLof/dK'
permissions='1'
لملفات YML:

user.admin:
 password: "$2y$10$FPF5Im9MELEvF5AYuuRMSO.QKoYVpsiu1YU9aDClgrU57XtLof/dK"
 permissions: 1
يمكنك تسمية التكوين الخاص بك ما تريد (طالما تحتفظ بامتدادها، بحيث يعرف phpMussel التنسيق الذي يستخدمه)، ويمكنك تخزينه في أي مكان تريده. يمكنك إخبار phpMussel بمكان العثور على ملف التكوين الخاص بك من خلال توفير مساره عند إنشاء اللودر. إذا لم يتم توفير أي مسار، فسيحاول phpMussel تحديد موقعه ضمن أصل دليل vendor.

في بعض البيئات، مثل Apache، من الممكن وضع نقطة في مقدمة التكوين الخاص بك لإخفائها ومنع الوصول العام.

راجع قسم التكوين في هذا المستند لمزيد من المعلومات حول توجيهات التكوين المتنوعة المتاحة لـ phpMussel.

٣.١ PHPMUSSEL CORE

بغض النظر عن الطريقة التي تريد بها استخدام phpMussel، سيحتوي كل تنفيذ تقريبًا على شيء مثل هذا، كحد أدنى:

<?php
$Loader = new \phpMussel\Core\Loader();
$Scanner = new \phpMussel\Core\Scanner($Loader);
كما تشير الأسماء، فإن اللودر مسؤول عن إعداد الضروريات الأساسية لاستخدام phpMussel، والماسح الضوئي مسؤول عن جميع وظائف المسح الأساسية.

يقبل منشئ اللودر خمس معلمات، كلها اختيارية.

public function __construct(
    string $ConfigurationPath = '',
    string $CachePath = '',
    string $QuarantinePath = '',
    string $SignaturesPath = '',
    string $VendorPath = ''
)
المعلمة الأولى هي المسار الكامل إلى ملف التكوين الخاص بك. عند عدم التحديد، سيبحث phpMussel عن ملف تكوين باسم phpmussel.ini أو phpmussel.yml، في أصل دليل vendor.

المعلمة الثانية هي المسار إلى الدليل الذي تسمح لـ phpMussel باستخدامه في التخزين المؤقت وتخزين الملفات المؤقت. عند عدم التحديد، سيحاول phpMussel إنشاء دليل جديد لاستخدامه، يحمل الاسم phpmussel-cache، في أصل دليل vendor. إذا كنت ترغب في تحديد هذا المسار بنفسك، فمن الأفضل اختيار دليل فارغ لتجنب الفقدان غير المرغوب فيه للبيانات الأخرى في الدليل المحدد.

المعلمة الثالثة هي المسار إلى دليل تسمح لـ phpMussel باستخدامه في وحدة العزل الخاصة به. عند عدم التحديد، سيحاول phpMussel إنشاء دليل جديد لاستخدامه، يحمل الاسم phpmussel-quarantine، في أصل دليل vendor. إذا كنت ترغب في تحديد هذا المسار بنفسك، فمن الأفضل اختيار دليل فارغ لتجنب الفقدان غير المرغوب فيه للبيانات الأخرى في الدليل المحدد. يوصى بشدة بمنع الوصول العام إلى المسار المستخدم في وحدة العزل.

المعلمة الرابعة هي المسار إلى الدليل الذي يحتوي على ملفات التوقيع لـ phpMussel. عند عدم التحديد، سيحاول phpMussel البحث عن ملفات التوقيع في دليل باسم phpmussel-signatures، في أصل دليل vendor.

المعلمة الخامسة هي المسار إلى دليل vendor الخاص بك. لا يجب أن تشير إلى أي شيء آخر. عند عدم التحديد، سيحاول phpMussel تحديد موقع هذا الدليل لنفسه. يتم توفير هذه المعلمة من أجل تسهيل التكامل الأسهل مع عمليات التنفيذ التي قد لا تحتوي بالضرورة على نفس بنية مشروع Composer النموذجي.

يقبل مُنشئ الماسح الضوئي معلمة واحدة فقط، وهو إلزامي: مثيل كائن محمل. أثناء تمريره بالإشارة، يجب أن يتم إنشاء اللودر إلى متغير (إن إنشاء اللودر مباشرة في الماسح الضوئي للتمرير بالقيمة ليس الطريقة الصحيحة لاستخدام phpMussel).

public function __construct(\phpMussel\Core\Loader &$Loader)

٣.٢ المسح التلقائي لتحميل الملف

لإنشاء معالج التحميل:

$Web = new \phpMussel\Web\Web($Loader, $Scanner);
لفحص تحميلات الملفات:

$Web->scan();
بشكل اختياري، يمكن أن يحاول phpMussel إصلاح أسماء التحميلات في حالة وجود خطأ ما، إذا كنت ترغب في:

$Web->demojibakefier();
كمثال كامل:

<?php
// Path to vendor directory.
$Vendor = __DIR__ . DIRECTORY_SEPARATOR . 'vendor';

// Composer's autoloader.
require $Vendor . DIRECTORY_SEPARATOR . 'autoload.php';

$Loader = new \phpMussel\Core\Loader();
$Scanner = new \phpMussel\Core\Scanner($Loader);
$Web = new \phpMussel\Web\Web($Loader, $Scanner);
$Loader->Events->addHandler('sendMail', new \phpMussel\PHPMailer\Linker($Loader));

// Scans file uploads (execution terminates here if the scan finds anything).
$Web->scan();

// Fixes possible corrupted file upload names (Warning: modifies the content of $_FILES).
$Web->demojibakefier();

// Cleanup.
unset($Web, $Scanner, $Loader);

?><html>
    <form enctype="multipart/form-data" name="upload" action="" method="post">
      <div class="spanner">
        <input type="file" name="upload_test[]" value="" />
        <input type="submit" value="OK" />
      </div>
    </form>
</html>
عند محاولة تحميل الملف ascii_standard_testfile.txt (يتم توفير عينة حميدة لغرض وحيد هو اختبار phpMussel):

لقطة شاشة

٣.٣ وضع CLI

لإنشاء معالج CLI:

$CLI = new \phpMussel\CLI\CLI($Loader, $Scanner);
كمثال كامل:

<?php
// Path to vendor directory.
$Vendor = __DIR__ . DIRECTORY_SEPARATOR . 'vendor';

// Composer's autoloader.
require $Vendor . DIRECTORY_SEPARATOR . 'autoload.php';

$Loader = new \phpMussel\Core\Loader();
$Scanner = new \phpMussel\Core\Scanner($Loader);
$CLI = new \phpMussel\CLI\CLI($Loader, $Scanner);

unset($CLI, $Scanner, $Loader);
لقطة شاشة:

لقطة شاشة:

٣.٤ الواجهة الأمامية

لإنشاء الواجهة الأمامية:

$FrontEnd = new \phpMussel\FrontEnd\FrontEnd($Loader, $Scanner);
كمثال كامل:

<?php
// Path to vendor directory.
$Vendor = __DIR__ . DIRECTORY_SEPARATOR . 'vendor';

// Composer's autoloader.
require $Vendor . DIRECTORY_SEPARATOR . 'autoload.php';

$Loader = new \phpMussel\Core\Loader();
$Scanner = new \phpMussel\Core\Scanner($Loader);
$FrontEnd = new \phpMussel\FrontEnd\FrontEnd($Loader, $Scanner);
$Web = new \phpMussel\Web\Web($Loader, $Scanner);
$Loader->Events->addHandler('sendMail', new \phpMussel\PHPMailer\Linker($Loader));

// Scans file uploads (execution terminates here if the scan finds anything).
$Web->scan();

// Fixes possible corrupted file upload names (Warning: modifies the content of $_FILES).
$Web->demojibakefier();

// Load the front-end.
$FrontEnd->view();

// Cleanup.
unset($Web, $FrontEnd, $Scanner, $Loader);
لقطة شاشة:

لقطة شاشة

٣.٥ API الماسح

يمكنك أيضًا استخدام واجهة برمجة تطبيقات الماسح الضوئي phpMussel في البرامج النصية والبرامج النصية الأخرى، إذا كنت ترغب في ذلك.

كمثال كامل:

// Path to vendor directory.
$Vendor = __DIR__ . DIRECTORY_SEPARATOR . 'vendor';

// Composer's autoloader.
require $Vendor . DIRECTORY_SEPARATOR . 'autoload.php';

// Location of the test files.
$Samples = sprintf($Vendor . '%1$sphpmussel%1$score%1$stests%1$s_support%1$ssamples', DIRECTORY_SEPARATOR);

$Loader = new \phpMussel\Core\Loader();
$Scanner = new \phpMussel\Core\Scanner($Loader);
$Loader->Events->addHandler('sendMail', new \phpMussel\PHPMailer\Linker($Loader));

// Execute the scan.
$Results = $Scanner->scan($Samples);

// Cleanup.
unset($Scanner, $Loader);

var_dump($Results);
الجزء المهم الذي يجب ملاحظته من هذا المثال هو طريقة scan(). تقبل الطريقة scan() معلمتين:

public function scan(mixed $Files, int $Format = 0): mixed
يمكن أن تكون المعلمة الأولى عبارة عن سلسلة أو صفيف، وتخبر الماسح الضوئي بما يجب فحصه. يمكن أن تكون سلسلة تشير إلى ملف أو دليل معين، أو صفيف من هذه السلاسل لتحديد ملفات/أدلة متعددة.

عندما تكون كسلسلة، يجب أن تشير إلى مكان العثور على البيانات. عندما تكون صفيفًا، يجب أن تشير مفاتيح الصفيف إلى الأسماء الأصلية للعناصر المراد مسحها ضوئيًا، ويجب أن تشير القيم إلى مكان العثور على البيانات.

المعلمة الثانية هي عدد صحيح، وتخبر الماسح الضوئي بكيفية إرجاع نتائج المسح.

حدد 1 لإرجاع نتائج المسح كمصفوفة لكل عنصر تم مسحه ضوئيًا كأعداد صحيحة.

هذه الأعداد الصحيحة لها المعاني التالية:

النتائج وصف
-5
يشير إلى أن الفحص فشل في إكمال لأسباب أخرى.
-4
يشير إلى أنه لا يمكن فحص البيانات بسبب التشفير.
-3
يشير إلى وجود مشاكل في ملفات توقيعات phpMussel.
-2
يشير إلى أنه تم الكشف عن بيانات فاسدة أثناء الفحص وبالتالي فشل اكتمال الفحص.
-1
يشير إلى أن الامتدادات المطلوبة من قبل PHP لتنفيذ الفحص كانت مفقودة وبالتالي فشل إكمال الفحص.
0
يشير إلى أن هدف الفحص غير موجود، وبالتالي لم يكن هناك شيء للمسح الضوئي.
1
يشير إلى أن الهدف تم فحصه بنجاح ولم يتم اكتشاف أي مشاكل.
2
يشير إلى أن الهدف تم فحصه بنجاح وتم اكتشاف المشكلات.
حدد 2 لإرجاع نتائج الفحص على أنها صحيحة أو خاطئة.

النتائج وصف
true
تم الكشف عن مشاكل (هدف الفحص سيء/خطير).
false
لم يتم الكشف عن المشكلات (ربما يكون هدف الفحص على ما يرام).
حدد 3 لإرجاع نتائج المسح كمصفوفة لكل عنصر تم مسحه ضوئيًا كنص قابل للقراءة البشرية.

إخراج المثال:

array(3) {
  ["dcacac499064454218823fbabff7e09b5b011c0c877ee6f215f35bffb195b6e9:654:ascii_standard_testfile.txt"]=>
  string(73) "Detected phpMussel-Testfile.ASCII.Standard (ascii_standard_testfile.txt)!"
  ["c845b950f38399ae7fe4b3107cab5b46ac7c3e184dddfec97d4d164c00cb584a:491:coex_testfile.rtf"]=>
  string(53) "Detected phpMussel-Testfile.CoEx (coex_testfile.rtf)!"
  ["d45d5d9df433aefeacaece6162b835e6474d6fcb707d24971322ec429707c58f:185:encrypted.zip"]=>
  string(77) "Detected encrypted archive; Encrypted archives not permitted (encrypted.zip)!"
}
حدد 4 لإرجاع نتائج المسح كسلسلة نص قابل للقراءة (مثل 3، ولكن كسلسلة بدلاً من صفيف).

إخراج المثال:

Detected phpMussel-Testfile.ASCII.Standard (ascii_standard_testfile.txt)! Detected phpMussel-Testfile.CoEx (coex_testfile.rtf)! Detected encrypted archive; Encrypted archives not permitted (encrypted.zip)!
حدد أي قيمة أخرى لإرجاع النص المنسق (مثل نتائج الفحص التي تمت رؤيتها عند استخدام CLI).

إخراج المثال:

string(1826) "Fri, 17 Jul 2020 18:50:47 +0800 Started.
─→ Checking "ascii_standard_testfile.txt".
──→ Detected phpMussel-Testfile.ASCII.Standard (ascii_standard_testfile.txt)!
─→ Checking "coex_testfile.rtf".
──→ Detected phpMussel-Testfile.CoEx (coex_testfile.rtf)!
─→ Checking "encrypted.zip".
──→ Detected encrypted archive; Encrypted archives not permitted (encrypted.zip)!
─→ Checking "exe_standard_testfile.exe".
──→ Filetype blacklisted (exe_standard_testfile.exe)!
─→ Checking "general_standard_testfile.txt".
──→ Detected phpMussel-Testfile.General.Standard (general_standard_testfile.txt)!
─→ Checking "graphics_standard_testfile.gif".
──→ Detected phpMussel-Testfile.Graphics.Standard (graphics_standard_testfile.gif)!
─→ Checking "hash_testfile_md5.txt".
──→ Detected phpMussel-Testfile.HASH.MD5 (hash_testfile_md5.txt)!
─→ Checking "hash_testfile_sha1.txt".
──→ Detected phpMussel-Testfile.HASH.SHA1 (hash_testfile_sha1.txt)!
─→ Checking "hash_testfile_sha256.txt".
──→ Detected phpMussel-Testfile.HASH.SHA256 (hash_testfile_sha256.txt)!
─→ Checking "hello.txt".
──→ No problems found.
─→ Checking "html_standard_testfile.html".
──→ Detected phpMussel-Testfile.HTML.Standard (html_standard_testfile.html)!
─→ Checking "ole_testfile.ole".
────→ Detected phpMussel-Testfile.OLE.Standard (ole_testfile.bin)!
─→ Checking "pdf_standard_testfile.pdf".
──→ Detected phpMussel-Testfile.PDF.Standard (pdf_standard_testfile.pdf)!
─→ Checking "pe_sectional_testfile.exe".
──→ Filetype blacklisted (pe_sectional_testfile.exe)!
─→ Checking "swf_standard_testfile.swf".
──→ Detected phpMussel-Testfile.SWF.Standard (swf_standard_testfile.swf)!
Fri, 17 Jul 2020 18:50:50 +0800 Finished.
"

٣.٦ 2FA

من الممكن جعل front-end أكثر أمانًا عن طريق تمكين 2FA. عند تسجيل الدخول إلى حساب باستخدام 2FA، يتم إرسال بريد إلكتروني إلى عنوان البريد الإلكتروني المقترن بهذا الحساب. تحتوي هذه الرسالة الإلكترونية على "رمز 2FA"، والذي يجب على المستخدم إدخاله، بالإضافة إلى اسم المستخدم وكلمة المرور، حتى تتمكن من تسجيل الدخول باستخدام هذا الحساب. وهذا يعني أن الحصول على كلمة مرور الحساب لن يكون كافيًا لأي متسلل أو مهاجم محتمل ليتمكن من تسجيل الدخول إلى هذا الحساب، لأنهم سيحتاجون أيضًا إلى الوصول بالفعل إلى عنوان البريد الإلكتروني المرتبط بهذا الحساب حتى يتمكنوا من تلقي رمز 2FA واستخدامه في الجلسة.

بعد تثبيت PHPMailer، ستحتاج إلى تعبئة توجيهات التهيئة لـ PHPMailer عبر صفحة تهيئة phpMussel أو ملف التكوين. يتم تضمين مزيد من المعلومات حول توجيهات التكوين هذه في قسم التكوين في هذا المستند. بعد ملء توجيهات تهيئة PHPMailer، اضبط enable_two_factor على true. 2FA ممكّن الآن.

بعد ذلك، ستحتاج إلى ربط عنوان بريد إلكتروني بحساب، حتى يعرف phpMussel مكان إرسال رموز 2FA عند تسجيل الدخول باستخدام هذا الحساب. للقيام بذلك، استخدم عنوان البريد الإلكتروني كاسم مستخدم للحساب (مثل [email protected])، أو تضمين عنوان البريد الإلكتروني كجزء من اسم المستخدم بالطريقة نفسها التي تريدها عند إرسال بريد إلكتروني بشكل طبيعي (مثل Foo Bar <[email protected]>).


٤. تمديد PHPMUSSEL

تم تصميم phpMussel مع وضع القابلية للتوسعة في الاعتبار. نرحب دائمًا بالمساهمات في أي من مستودعات منظمة phpMussel. من الممكن أيضًا تعديل أو توسيع phpMussel وفقًا لاحتياجاتك الفريدة، إذا كنت ترغب في ذلك (على سبيل المثال، بالنسبة للتعديلات أو الإضافات الخاصة بتنفيذك الخاص، والتي لا يمكن نشرها بسبب متطلبات السرية أو الخصوصية في مؤسستك، أو التي قد يُنصح بنشرها في مستودعها الخاص، مثل الإضافات وحزم Composer الجديدة التي تتطلب phpMussel).

منذ الإصدار 3، توجد جميع وظائف phpMussel كصنف، مما يعني أنه في بعض الحالات، آليات وراثة الكائن التي توفرها PHP طريقة سهلة ومناسبة لتوسيع phpMussel.

يوفر phpMussel أيضًا آلياته الخاصة للتوسع. قبل الإصدار 3، كانت الآلية المفضلة هي نظام البرنامج المساعد المدمج لـ phpMussel. منذ الإصدار 3، الآلية المفضلة هي منظم الأحداث.

كود معياري لتوسيع phpMussel وكتابة ملحقات جديدة متاح للجمهور في مستودع القياسية. يتم تضمين أيضًا قائمة بجميع الأحداث المدعومة حاليًا وإرشادات أكثر تفصيلاً بشأن كيفية استخدام الكود معياري.

ستلاحظ أن هيكل الكود القياسي v3 مطابق لهيكل مستودعات phpMussel v3 الأخرى. انها ليست صدفه. متى أمكن، أوصي باستخدام الكود القياسي v3 لتوسيع phpMussel، واستخدام مبادئ تصميم مماثلة لتلك الخاصة بـ phpMussel v3 نفسه. إذا اخترت نشر الإضافة أو المكون الإضافي الجديد، فيمكنك دمج دعم Composer له، ومن المفترض أن يكون من الممكن نظريًا للآخرين استخدام الامتداد أو المكون الإضافي بنفس الطريقة تمامًا مثل phpMussel v3 نفسه، ببساطة طلبها جنبًا إلى جنب مع تبعيات الملحن الأخرى، وتطبيق أي معالجات للأحداث ضرورية عند تنفيذها. (بالطبع، لا تنس تضمين الإرشادات مع منشوراتك، حتى يعرف الآخرون أي معالجات ضرورية للأحداث وأي معلومات أخرى قد تكون ضرورية لتثبيت المنشور الخاص بك واستخدامه بشكل صحيح).


٥. خيارات التكوين/التهيئة

فيما يلي قائمة بتوجيهات التكوين المقبولة من قبل phpMussel، بالإضافة إلى وصف الغرض منه و وظيفته.

التكوين (v3)
│
├───core
│       scan_log [string]
│       scan_log_serialized [string]
│       error_log [string]
│       outbound_request_log [string]
│       truncate [string]
│       log_rotation_limit [int]
│       log_rotation_action [string]
│       timezone [string]
│       time_offset [int]
│       time_format [string]
│       ipaddr [string]
│       delete_on_sight [bool]
│       lang [string]
│       lang_override [bool]
│       scan_cache_expiry [int]
│       maintenance_mode [bool]
│       statistics [bool]
│       hide_version [bool]
│       disabled_channels [string]
│       default_timeout [int]
├───signatures
│       active [string]
│       fail_silently [bool]
│       fail_extensions_silently [bool]
│       detect_adware [bool]
│       detect_joke_hoax [bool]
│       detect_pua_pup [bool]
│       detect_packer_packed [bool]
│       detect_shell [bool]
│       detect_deface [bool]
│       detect_encryption [bool]
│       heuristic_threshold [int]
├───files
│       filesize_limit [string]
│       filesize_response [bool]
│       filetype_whitelist [string]
│       filetype_blacklist [string]
│       filetype_greylist [string]
│       check_archives [bool]
│       filesize_archives [bool]
│       filetype_archives [bool]
│       max_recursion [int]
│       block_encrypted_archives [bool]
│       max_files_in_archives [int]
│       chameleon_from_php [bool]
│       can_contain_php_file_extensions [string]
│       chameleon_from_exe [bool]
│       chameleon_to_archive [bool]
│       chameleon_to_doc [bool]
│       chameleon_to_img [bool]
│       chameleon_to_pdf [bool]
│       archive_file_extensions [string]
│       block_control_characters [bool]
│       corrupted_exe [bool]
│       decode_threshold [string]
│       scannable_threshold [string]
│       allow_leading_trailing_dots [bool]
│       block_macros [bool]
│       only_allow_images [bool]
├───quarantine
│       quarantine_key [string]
│       quarantine_max_filesize [string]
│       quarantine_max_usage [string]
│       quarantine_max_files [int]
├───virustotal
│       vt_public_api_key [string]
│       vt_suspicion_level [int]
│       vt_weighting [int]
│       vt_quota_rate [int]
│       vt_quota_time [int]
├───urlscanner
│       google_api_key [string]
│       maximum_api_lookups [int]
│       maximum_api_lookups_response [bool]
│       cache_time [int]
├───legal
│       pseudonymise_ip_addresses [bool]
│       privacy_policy [string]
├───supplementary_cache_options
│       prefix [string]
│       enable_apcu [bool]
│       enable_memcached [bool]
│       enable_redis [bool]
│       enable_pdo [bool]
│       memcached_host [string]
│       memcached_port [int]
│       redis_host [string]
│       redis_port [int]
│       redis_timeout [float]
│       redis_database_number [int]
│       pdo_dsn [string]
│       pdo_username [string]
│       pdo_password [string]
├───frontend
│       frontend_log [string]
│       max_login_attempts [int]
│       numbers [string]
│       default_algo [string]
│       theme [string]
│       magnification [float]
│       custom_header [string]
│       custom_footer [string]
├───web
│       uploads_log [string]
│       forbid_on_block [bool]
│       unsupported_media_type_header [bool]
│       max_uploads [int]
│       ignore_upload_errors [bool]
│       theme [string]
│       magnification [float]
│       custom_header [string]
│       custom_footer [string]
└───phpmailer
        event_log [string]
        enable_two_factor [bool]
        enable_notifications [string]
        skip_auth_process [bool]
        host [string]
        port [int]
        smtp_secure [string]
        smtp_auth [bool]
        username [string]
        password [string]
        set_from_address [string]
        set_from_name [string]
        add_reply_to_address [string]
        add_reply_to_name [string]

"core" (التصنيف)

التكوين العام (أي التكوين الأساسي لا ينتمي إلى فئات أخرى).

"scan_log" [string]
  • اسم الملف لملف تسجيل جميع نتائج المسح. قم بتعيين اسم الملف، أو اتركه فارغا للتعطيل.

نصيحة مفيدة: يمكنك إرفاق معلومات التاريخ/الوقت بأسماء ملفات السجل باستخدام العناصر النائبة لتنسيق الوقت. يتم عرض العناصر النائبة لتنسيق الوقت المتوفرة عند {{Links.ConfigRef.time_format}}.

"scan_log_serialized" [string]
  • اسم الملف من ملف لتسجيل جميع نتائج المسح إلى (باستخدام تنسيق متسلسل). تحديد اسم الملف، أو اتركه فارغا للتعطيل.

نصيحة مفيدة: يمكنك إرفاق معلومات التاريخ/الوقت بأسماء ملفات السجل باستخدام العناصر النائبة لتنسيق الوقت. يتم عرض العناصر النائبة لتنسيق الوقت المتوفرة عند {{Links.ConfigRef.time_format}}.

"error_log" [string]
  • ملف لتسجيل أي أخطاء غير مميتة المكتشفة. تحديد اسم الملف، أو اتركه فارغا لتعطيل.

نصيحة مفيدة: يمكنك إرفاق معلومات التاريخ/الوقت بأسماء ملفات السجل باستخدام العناصر النائبة لتنسيق الوقت. يتم عرض العناصر النائبة لتنسيق الوقت المتوفرة عند {{Links.ConfigRef.time_format}}.

"outbound_request_log" [string]
  • ملف لتسجيل نتائج أي طلبات صادرة. تحديد اسم الملف، أو اتركه فارغا لتعطيل.

نصيحة مفيدة: يمكنك إرفاق معلومات التاريخ/الوقت بأسماء ملفات السجل باستخدام العناصر النائبة لتنسيق الوقت. يتم عرض العناصر النائبة لتنسيق الوقت المتوفرة عند {{Links.ConfigRef.time_format}}.

"truncate" [string]
  • اقتطاع ملفات السجل عندما تصل إلى حجم معين؟ القيمة هي الحجم الأقصى في بايت/كيلوبايت/ميغابايت/غيغابايت/تيرابايت الذي قد ينمو ملفات السجل إلى قبل اقتطاعه. القيمة الافتراضية 0KB تعطيل اقتطاع (ملفات السجل يمكن أن تنمو إلى أجل غير مسمى). ملاحظة: ينطبق على ملفات السجل الفردية! ولا يعتبر حجمها جماعيا.
"log_rotation_limit" [int]
  • يحدد تدوير السجل عدد ملفات السجل التي يجب أن تكون موجودة في أي وقت. عند إنشاء ملفات السجل الجديدة، إذا تجاوز العدد الإجمالي لبيانات السجل الحد المحدد، فسيتم تنفيذ الإجراء المحدد. يمكنك تحديد الحد المرغوب هنا. ستعمل القيمة 0 على تعطيل تدوير السجل.
"log_rotation_action" [string]
  • يحدد تدوير السجل عدد ملفات السجل التي يجب أن تكون موجودة في أي وقت. عند إنشاء ملفات السجل الجديدة، إذا تجاوز العدد الإجمالي لبيانات السجل الحد المحدد، فسيتم تنفيذ الإجراء المحدد. يمكنك تحديد الإجراء المطلوب هنا.
log_rotation_action
├─Delete ("احذف أقدم السجلات، حتى لا يتم تجاوز الحد.")
└─Archive ("أرشفة أولاً، ثم احذف أقدم السجلات، حتى لا يتم تجاوز الحد.")
"timezone" [string]
  • يتم استخدام هذا لتحديد المنطقة الزمنية للاستخدام (على سبيل المثال، Africa/Cairo، America/New_York، Asia/Tokyo، Australia/Perth، Europe/Berlin، Pacific/Guam، إلخ). حدد "SYSTEM" للسماح لـ PHP بمعالجة هذا الأمر تلقائيًا.
timezone
├─SYSTEM ("استخدام المنطقة الزمنية الافتراضية للنظام.")
├─UTC ("UTC")
└─…آخر
"time_offset" [int]
  • المنطقة الزمنية تعويض في غضون دقائق.
"time_format" [string]
  • شكل التواريخ المستخدم من قبل phpMussel. ويمكن إضافة خيارات إضافية عند الطلب.
time_format
├─{Day}, {dd} {Mon} {yyyy} {hh}:{ii}:{ss} {tz} ("{Day}, {dd} {Mon} {yyyy} {hh}:{ii}:{ss} {tz}")
├─{Day}, {dd} {Mon} {yyyy} {hh}:{ii}:{ss} ("{Day}, {dd} {Mon} {yyyy} {hh}:{ii}:{ss}")
├─{Day}, {dd} {Mon} {yyyy} ("{Day}, {dd} {Mon} {yyyy}")
├─{yyyy}.{mm}.{dd} {hh}:{ii}:{ss} {tz} ("{yyyy}.{mm}.{dd} {hh}:{ii}:{ss} {tz}")
├─{yyyy}.{mm}.{dd} {hh}:{ii}:{ss} ("{yyyy}.{mm}.{dd} {hh}:{ii}:{ss}")
├─{yyyy}.{mm}.{dd} ("{yyyy}.{mm}.{dd}")
├─{yyyy}-{mm}-{dd} {hh}:{ii}:{ss} {tz} ("{yyyy}-{mm}-{dd} {hh}:{ii}:{ss} {tz}")
├─{yyyy}-{mm}-{dd} {hh}:{ii}:{ss} ("{yyyy}-{mm}-{dd} {hh}:{ii}:{ss}")
├─{yyyy}-{mm}-{dd} ("{yyyy}-{mm}-{dd}")
├─{yyyy}/{mm}/{dd} {hh}:{ii}:{ss} {tz} ("{yyyy}/{mm}/{dd} {hh}:{ii}:{ss} {tz}")
├─{yyyy}/{mm}/{dd} {hh}:{ii}:{ss} ("{yyyy}/{mm}/{dd} {hh}:{ii}:{ss}")
├─{yyyy}/{mm}/{dd} ("{yyyy}/{mm}/{dd}")
├─{dd}.{mm}.{yyyy} {hh}:{ii}:{ss} {tz} ("{dd}.{mm}.{yyyy} {hh}:{ii}:{ss} {tz}")
├─{dd}.{mm}.{yyyy} {hh}:{ii}:{ss} ("{dd}.{mm}.{yyyy} {hh}:{ii}:{ss}")
├─{dd}.{mm}.{yyyy} ("{dd}.{mm}.{yyyy}")
├─{dd}-{mm}-{yyyy} {hh}:{ii}:{ss} {tz} ("{dd}-{mm}-{yyyy} {hh}:{ii}:{ss} {tz}")
├─{dd}-{mm}-{yyyy} {hh}:{ii}:{ss} ("{dd}-{mm}-{yyyy} {hh}:{ii}:{ss}")
├─{dd}-{mm}-{yyyy} ("{dd}-{mm}-{yyyy}")
├─{dd}/{mm}/{yyyy} {hh}:{ii}:{ss} {tz} ("{dd}/{mm}/{yyyy} {hh}:{ii}:{ss} {tz}")
├─{dd}/{mm}/{yyyy} {hh}:{ii}:{ss} ("{dd}/{mm}/{yyyy} {hh}:{ii}:{ss}")
├─{dd}/{mm}/{yyyy} ("{dd}/{mm}/{yyyy}")
├─{mm}.{dd}.{yyyy} {hh}:{ii}:{ss} {tz} ("{mm}.{dd}.{yyyy} {hh}:{ii}:{ss} {tz}")
├─{mm}.{dd}.{yyyy} {hh}:{ii}:{ss} ("{mm}.{dd}.{yyyy} {hh}:{ii}:{ss}")
├─{mm}.{dd}.{yyyy} ("{mm}.{dd}.{yyyy}")
├─{mm}-{dd}-{yyyy} {hh}:{ii}:{ss} {tz} ("{mm}-{dd}-{yyyy} {hh}:{ii}:{ss} {tz}")
├─{mm}-{dd}-{yyyy} {hh}:{ii}:{ss} ("{mm}-{dd}-{yyyy} {hh}:{ii}:{ss}")
├─{mm}-{dd}-{yyyy} ("{mm}-{dd}-{yyyy}")
├─{mm}/{dd}/{yyyy} {hh}:{ii}:{ss} {tz} ("{mm}/{dd}/{yyyy} {hh}:{ii}:{ss} {tz}")
├─{mm}/{dd}/{yyyy} {hh}:{ii}:{ss} ("{mm}/{dd}/{yyyy} {hh}:{ii}:{ss}")
├─{mm}/{dd}/{yyyy} ("{mm}/{dd}/{yyyy}")
├─{yy}.{mm}.{dd} {hh}:{ii}:{ss} {tz} ("{yy}.{mm}.{dd} {hh}:{ii}:{ss} {tz}")
├─{yy}.{mm}.{dd} {hh}:{ii}:{ss} ("{yy}.{mm}.{dd} {hh}:{ii}:{ss}")
├─{yy}.{mm}.{dd} ("{yy}.{mm}.{dd}")
├─{yy}-{mm}-{dd} {hh}:{ii}:{ss} {tz} ("{yy}-{mm}-{dd} {hh}:{ii}:{ss} {tz}")
├─{yy}-{mm}-{dd} {hh}:{ii}:{ss} ("{yy}-{mm}-{dd} {hh}:{ii}:{ss}")
├─{yy}-{mm}-{dd} ("{yy}-{mm}-{dd}")
├─{yy}/{mm}/{dd} {hh}:{ii}:{ss} {tz} ("{yy}/{mm}/{dd} {hh}:{ii}:{ss} {tz}")
├─{yy}/{mm}/{dd} {hh}:{ii}:{ss} ("{yy}/{mm}/{dd} {hh}:{ii}:{ss}")
├─{yy}/{mm}/{dd} ("{yy}/{mm}/{dd}")
├─{dd}.{mm}.{yy} {hh}:{ii}:{ss} {tz} ("{dd}.{mm}.{yy} {hh}:{ii}:{ss} {tz}")
├─{dd}.{mm}.{yy} {hh}:{ii}:{ss} ("{dd}.{mm}.{yy} {hh}:{ii}:{ss}")
├─{dd}.{mm}.{yy} ("{dd}.{mm}.{yy}")
├─{dd}-{mm}-{yy} {hh}:{ii}:{ss} {tz} ("{dd}-{mm}-{yy} {hh}:{ii}:{ss} {tz}")
├─{dd}-{mm}-{yy} {hh}:{ii}:{ss} ("{dd}-{mm}-{yy} {hh}:{ii}:{ss}")
├─{dd}-{mm}-{yy} ("{dd}-{mm}-{yy}")
├─{dd}/{mm}/{yy} {hh}:{ii}:{ss} {tz} ("{dd}/{mm}/{yy} {hh}:{ii}:{ss} {tz}")
├─{dd}/{mm}/{yy} {hh}:{ii}:{ss} ("{dd}/{mm}/{yy} {hh}:{ii}:{ss}")
├─{dd}/{mm}/{yy} ("{dd}/{mm}/{yy}")
├─{mm}.{dd}.{yy} {hh}:{ii}:{ss} {tz} ("{mm}.{dd}.{yy} {hh}:{ii}:{ss} {tz}")
├─{mm}.{dd}.{yy} {hh}:{ii}:{ss} ("{mm}.{dd}.{yy} {hh}:{ii}:{ss}")
├─{mm}.{dd}.{yy} ("{mm}.{dd}.{yy}")
├─{mm}-{dd}-{yy} {hh}:{ii}:{ss} {tz} ("{mm}-{dd}-{yy} {hh}:{ii}:{ss} {tz}")
├─{mm}-{dd}-{yy} {hh}:{ii}:{ss} ("{mm}-{dd}-{yy} {hh}:{ii}:{ss}")
├─{mm}-{dd}-{yy} ("{mm}-{dd}-{yy}")
├─{mm}/{dd}/{yy} {hh}:{ii}:{ss} {tz} ("{mm}/{dd}/{yy} {hh}:{ii}:{ss} {tz}")
├─{mm}/{dd}/{yy} {hh}:{ii}:{ss} ("{mm}/{dd}/{yy} {hh}:{ii}:{ss}")
├─{mm}/{dd}/{yy} ("{mm}/{dd}/{yy}")
├─{yyyy}年{m}月{d}日 {hh}時{ii}分{ss}秒 ("{yyyy}年{m}月{d}日 {hh}時{ii}分{ss}秒")
├─{yyyy}年{m}月{d}日 {hh}:{ii}:{ss} {tz} ("{yyyy}年{m}月{d}日 {hh}:{ii}:{ss} {tz}")
├─{yyyy}年{m}月{d}日 ("{yyyy}年{m}月{d}日")
├─{yy}年{m}月{d}日 {hh}時{ii}分{ss}秒 ("{yy}年{m}月{d}日 {hh}時{ii}分{ss}秒")
├─{yy}年{m}月{d}日 {hh}:{ii}:{ss} {tz} ("{yy}年{m}月{d}日 {hh}:{ii}:{ss} {tz}")
├─{yy}年{m}月{d}日 ("{yy}年{m}月{d}日")
├─{yyyy}년 {m}월 {d}일 {hh}시 {ii}분 {ss}초 ("{yyyy}년 {m}월 {d}일 {hh}시 {ii}분 {ss}초")
├─{yyyy}년 {m}월 {d}일 {hh}:{ii}:{ss} {tz} ("{yyyy}년 {m}월 {d}일 {hh}:{ii}:{ss} {tz}")
├─{yyyy}년 {m}월 {d}일 ("{yyyy}년 {m}월 {d}일")
├─{yy}년 {m}월 {d}일 {hh}시 {ii}분 {ss}초 ("{yy}년 {m}월 {d}일 {hh}시 {ii}분 {ss}초")
├─{yy}년 {m}월 {d}일 {hh}:{ii}:{ss} {tz} ("{yy}년 {m}월 {d}일 {hh}:{ii}:{ss} {tz}")
├─{yy}년 {m}월 {d}일 ("{yy}년 {m}월 {d}일")
├─{yyyy}-{mm}-{dd}T{hh}:{ii}:{ss}{t:z} ("{yyyy}-{mm}-{dd}T{hh}:{ii}:{ss}{t:z}")
├─{d}. {m}. {yyyy} ("{d}. {m}. {yyyy}")
└─…آخر

العنصر النائب – تفسير – مثال يعتمد على 2024-04-30T18:27:49+08:00.
{yyyy} – السنة – على سبيل المثال، 2024.
{yy} – السنة المختصرة – على سبيل المثال، 24.
{Mon} – اسم الشهر المختصر (باللغة الإنجليزية) – على سبيل المثال، Apr.
{mm} – الشهر الذي مع الأصفار البادئة – على سبيل المثال، 04.
{m} – الشهر – على سبيل المثال، 4.
{Day} – اسم اليوم المختصر (باللغة الإنجليزية) – على سبيل المثال، Tue.
{dd} – اليوم مع الأصفار البادئة – على سبيل المثال، 30.
{d} – اليوم – على سبيل المثال، 30.
{hh} – الساعة مع الأصفار البادئة (تستخدم نظام 24 ساعة) – على سبيل المثال، 18.
{h} – الساعة (تستخدم نظام 24 ساعة) – على سبيل المثال، 18.
{ii} – الدقيقة مع الأصفار البادئة – على سبيل المثال، 27.
{i} – الدقيقة – على سبيل المثال، 27.
{ss} – الثواني مع الأصفار البادئة – على سبيل المثال، 49.
{s} – الثواني – على سبيل المثال، 49.
{tz} – المنطقة الزمنية (بدون النقطتين) – على سبيل المثال، +0800.
{t:z} – المنطقة الزمنية (مع النقطتين) – على سبيل المثال، +08:00.

"ipaddr" [string]
  • أين يمكن العثور على عنوان IP لربط الطلبات؟ (مفيدة للخدمات مثل لايتكلاود و مثلها) الافتراضي = REMOTE_ADDR. تحذير: لا تغير هذا إلا إذا كنت تعرف ما تفعلونه!
ipaddr
├─HTTP_INCAP_CLIENT_IP ("HTTP_INCAP_CLIENT_IP (Incapsula)")
├─HTTP_CF_CONNECTING_IP ("HTTP_CF_CONNECTING_IP (Cloudflare)")
├─CF-Connecting-IP ("CF-Connecting-IP (Cloudflare)")
├─HTTP_X_FORWARDED_FOR ("HTTP_X_FORWARDED_FOR (Cloudbric)")
├─X-Forwarded-For ("X-Forwarded-For (Squid)")
├─Forwarded ("Forwarded")
├─REMOTE_ADDR ("REMOTE_ADDR (الافتراضي)")
└─…آخر
"delete_on_sight" [bool]
  • تمكين هذا التوجيه وإرشاد النصي لمحاولة حذف فورا عن أي الممسوحة ضوئيا تحميل ملف محاولة مطابقة أي معايير الكشف، سواء عن طريق التوقيعات أو غير ذلك. لن يكون لمست الملفات مصممة على أن تكون "نظيفة". في حالة المحفوظات، سيتم حذف أرشيف كامل، بغض النظر عن ما إذا كان أو لم يكن ملف المخالف هو واحد فقط من العديد من الملفات الواردة في الأرشيف. بالنسبة لحالة إيداع ملف المسح الضوئي، عادة، فإنه ليس من الضروري لتمكين هذا التوجيه، لأن العادة، PHP وتطهير محتويات ذاكرة التخزين المؤقت تلقائيا عند انتهاء التنفيذ، وهذا يعني انها سوف عادة حذف أي الملفات التي تم تحميلها من خلال ذلك إلى الخادم ما لم يكونوا قد تم نقلها أو نسخها أو حذفها بالفعل. يضاف هذا التوجيه هنا كإجراء إضافي من الأمن لأولئك الذين نسخ من PHP قد لا تتصرف دائما على النحو المتوقع. = كاذبة بعد المسح، وترك الملف وحده [الافتراضي]. صحيح/True = بعد المسح، إن لم يكن نظيفة، تحذف فورا.
"lang" [string]
  • تحديد اللغة الافتراضية الخاصة بـ phpMussel.
lang
├─af ("Afrikaans")
├─ar ("العربية")
├─bg ("Български")
├─bn ("বাংলা")
├─bs ("Bosanski")
├─ca ("Català")
├─cs ("Čeština")
├─de ("Deutsch")
├─en ("English (AU/GB/NZ)")
├─en-CA ("English (CA)")
├─en-US ("English (US)")
├─es ("Español")
├─fa ("فارسی")
├─fr ("Français")
├─gl ("Galego")
├─gu ("ગુજરાતી")
├─he ("עברית")
├─hi ("हिंदी")
├─hr ("Hrvatski")
├─id ("Bahasa Indonesia")
├─it ("Italiano")
├─ja ("日本語")
├─ko ("한국어")
├─lv ("Latviešu")
├─ms ("Bahasa Melayu")
├─nl ("Nederlandse")
├─no ("Norsk")
├─pa ("ਪੰਜਾਬੀ")
├─pl ("Polski")
├─pt-BR ("Português (Brasil)")
├─pt-PT ("Português (Europeu)")
├─ro ("Română")
├─ru ("Русский")
├─sv ("Svenska")
├─sr ("Српски")
├─ta ("தமிழ்")
├─th ("ภาษาไทย")
├─tr ("Türkçe")
├─uk ("Українська")
├─ur ("اردو")
├─vi ("Tiếng Việt")
├─zh-Hans ("中文(简体)")
└─zh-Hant ("中文(傳統)")
"lang_override" [bool]
  • الترجمة وفقًا لـ HTTP_ACCEPT_LANGUAGE كلما أمكن ذلك؟ صحيح/True = نعم [افتراضي]؛ زائفة/False = لا.
"scan_cache_expiry" [int]
  • إلى متى يجب أن phpMussel تخزين نتائج المسح؟ القيمة هي عدد الثواني لتخزين نتائج المسح ل. الافتراضي هو 21600 ثانية (6 ساعات)؛ وقيمة 0 تعطيل التخزين المؤقت نتائج المسح.
"maintenance_mode" [bool]
  • هل تريد تمكين وضع الصيانة؟ صحيح/True = نعم؛ زائفة/False = لا [افتراضي]. تعطيل كل شيء بخلاف front-end. قد تكون مفيدة أحيانا عند تحديث نظام إدارة المحتوى والأطر وما إلى ذلك.
"statistics" [bool]
  • هل تريد تتبع إحصاءات استخدام phpMussel؟ صحيح/True = نعم؛ زائفة/False = لا [افتراضي].
"hide_version" [bool]
  • إخفاء معلومات الإصدار من السجلات وإخراج الصفحة؟ صحيح/True = نعم؛ زائفة/False = لا [افتراضي].
"disabled_channels" [string]
  • يمكن استخدام هذا لمنع phpMussel من استخدام قنوات معينة عند إرسال الطلبات.
disabled_channels
├─GitHub ("GitHub")
├─BitBucket ("BitBucket")
├─VirusTotal_HTTPS ("VirusTotal (HTTPS)")
└─VirusTotal_HTTP ("VirusTotal (HTTP)")
"default_timeout" [int]
  • المهلة الافتراضية لاستخدامها للطلبات الخارجية؟ الافتراضي = 12 ثانية.

"signatures" (التصنيف)

التكوين للتوقيعات، ملفات التوقيع، إلخ.

"active" [string]
  • قائمة من الملفات توقيع النشطة، محدد بفواصل. ملحوظة: يجب أولاً تثبيت ملفات التوقيع، قبل أن تتمكن من تنشيطها. لكي تعمل ملفات الاختبار بشكل صحيح، يجب تثبيت ملفات التوقيع وتنشيطها.
"fail_silently" [bool]
  • هل يجب على phpMussel الابلاغ عندما يتم توقيع ملفات مفقودة أو تالفة؟ إذا كان fail_silently المعوقين، في عداد المفقودين وسيتم الإبلاغ عن ملفات فساد في المسح، وإذا fail_silently تمكين، في عداد المفقودين وسيتم تجاهل ملفات فساد، مع مسح الإبلاغ عن تلك الملفات أنه لا توجد أي مشاكل. وهذا ين بغي عموما أن تترك وحدها إلا إذا كنت تعاني من أعطال أو مشاكل مشابهة. خطأ = معطل. صحيح/True = ممكن [افتراضي].
"fail_extensions_silently" [bool]
  • هل يجب على phpMussel الابلاغ عندما تفقد الملحقات؟ إذا تم تعطيل fail_extensions_silently، وسيتم إبلاغ ملحقات مفقودة على المسح، وإذا تم تمكين fail_extensions_silently، سيتم تجاهل ملحقات المفقودة، مع مسح الإبلاغ عن تلك الملفات أنه لا توجد أي مشاكل. تعطيل هذا التوجيه قد يحتمل زيادة الأمان، ولكن قد يؤدي أيضا إلى زيادة من ايجابيات كاذبة. خطأ = معطل. صحيح/True = ممكن [افتراضي].
"detect_adware" [bool]
  • هل يجب على توقيعات phpMussel الكشف عن تجسس؟ زائفة/False = لا؛ صحيح/True = نعم [افتراضي].
"detect_joke_hoax" [bool]
  • هل يجب على توقيعات phpMussel الكشف عن خدعة البرمجيات الخبيثة / الفيروسات؟ زائفة/False = لا؛ صحيح/True = نعم [افتراضي].
"detect_pua_pup" [bool]
  • هل يجب على توقيعات phpMussel الكشف عن PUAs؟ زائفة/False = لا؛ صحيح/True = نعم [افتراضي].
"detect_packer_packed" [bool]
  • هل يجب على توقيعات phpMussel الكشف عن تعبئة والبيانات المعبأة؟ زائفة/False = لا؛ صحيح/True = نعم [افتراضي].
"detect_shell" [bool]
  • هل يجب على توقيعات phpMussel الكشف عن البرامج النصية قذيفة؟ زائفة/False = لا؛ صحيح/True = نعم [افتراضي].
"detect_deface" [bool]
  • هل يجب على توقيعات phpMussel الكشف عن مهاجمات وdefacers؟ زائفة/False = لا؛ صحيح/True = نعم [افتراضي].
"detect_encryption" [bool]
  • يجب phpMussel كشف ومنع الملفات المشفرة؟ زائفة/False = لا؛ صحيح/True = نعم [افتراضي].
"heuristic_threshold" [int]
  • هناك توقيعات معينة من phpMussel التي تهدف إلى تحديد الصفات المشبوهة والمحتمل أن تكون ضارة من الملفات التي يتم تحميلها دون في أنفسهم تحديد تلك الملفات التي تم تحميلها على وجه التحديد بأنها خبيثة. هذه القيمة "الحد الأقصى " تقول phpMussel ما الحد الأقصى للوزن الكلي من الصفات المشبوهة والمحتمل أن تكون ضارة من الملفات التي يتم تحميلها هذا المسموح به هو قبل تلك الملفات ليتم وضع علامة بأنها خبيثة. تعريف الوزن في هذا السياق هو العدد الإجمالي من الصفات المشبوهة والمحتمل أن تكون ضارة تحديدها. افتراضيا، سيتم تعيين هذه القيمة إلى 3. القيمة المنخفضة عموما سوف يؤدي إلى حدوث أعلى من ايجابيات كاذبة ولكن عددا أكبر من الملفات الخبيثة التي لوحت، في حين أن أعلى قيمة عموما سوف يؤدي إلى حدوث انخفاض من ايجابيات كاذبة ولكن انخفاض عدد الملفات الخبيثة التي توضع. انها عموما من الأفضل ترك هذه القيمة في الافتراضي إلا إذا كنت تعاني من مشاكل المتعلقة بها.

"files" (التصنيف)

تفاصيل كيفية التعامل مع الملفات عند المسح.

"filesize_limit" [string]
  • حدود حجم الملف بالكيلو بايت. 65536 = 64MB [افتراضي]. 0 = لا يوجد حد (greylisted دائما)، أي (إيجابية) قيمة رقمية قبلت. هذا يمكن أن يكون مفيدا عندما يحد التكوين الخاص بي مقدار الذاكرة عملية يمكن أن تعقد أو إذا كان لديك PHP حدود التكوين حجم الملف من الإضافات.
"filesize_response" [bool]
  • ماذا تفعل مع الملفات التي تتجاوز الحد الأقصى لحجم الملف (إن وجد). زائفة/False = القائمة البيضاء. صحيح/True = القائمة السوداء [افتراضي].
"filetype_whitelist" [string]
  • القائمة البيضاء:

كيف يعمل هذا. إذا كان النظام يسمح فقط أنواع معينة من الملفات المراد تحميلها، أو إذا كان النظام ينفي صراحة أنواع معينة من الملفات، تحديد تلك نوع الملف في قوائم بيضاء، القوائم السوداء و القوائم الرمادية يمكن أن تزيد من السرعة التي يتم تنفيذ المسح من خلال السماح للبرنامج بتخطي بعض أنواع الملفات. الشكل هو CSV (قيم مفصولة بفواصل).

الترتيب المنطقي للمعالجة. إذا نوع الملف موجود في القائمة البيضاء، لا يفحص ولا تحجب الملف، وعدم التدقيق في ملف ضد القائمة السوداء أو القائمة الرمادية. إذا نوع الملف موجود في القائمة السوداء، لا تفحص الملف ولكن منع ذلك على أي حال، وعدم التدقيق في ملف ضد قائمة رمادية. إذا كانت قائمة رمادية فارغة أو إذا كانت قائمة رمادية ليس فارغا من نوع الملف، مسح الملفات حسب طبيعتها وتحديد ما إذا كان لمنع ذلك بناء على نتائج الفحص، ولكن إذا كانت قائمة رمادية ليس فارغا ونوع الملف هو ليس ملف قائمة رمادية، معالجة الملف على القائمة السوداء، لذلك لا المسح الضوئي ولكن منع ذلك على أي حال.

"filetype_blacklist" [string]
  • القائمة السوداء:

كيف يعمل هذا. إذا كان النظام يسمح فقط أنواع معينة من الملفات المراد تحميلها، أو إذا كان النظام ينفي صراحة أنواع معينة من الملفات، تحديد تلك نوع الملف في قوائم بيضاء، القوائم السوداء و القوائم الرمادية يمكن أن تزيد من السرعة التي يتم تنفيذ المسح من خلال السماح للبرنامج بتخطي بعض أنواع الملفات. الشكل هو CSV (قيم مفصولة بفواصل).

الترتيب المنطقي للمعالجة. إذا نوع الملف موجود في القائمة البيضاء، لا يفحص ولا تحجب الملف، وعدم التدقيق في ملف ضد القائمة السوداء أو القائمة الرمادية. إذا نوع الملف موجود في القائمة السوداء، لا تفحص الملف ولكن منع ذلك على أي حال، وعدم التدقيق في ملف ضد قائمة رمادية. إذا كانت قائمة رمادية فارغة أو إذا كانت قائمة رمادية ليس فارغا من نوع الملف، مسح الملفات حسب طبيعتها وتحديد ما إذا كان لمنع ذلك بناء على نتائج الفحص، ولكن إذا كانت قائمة رمادية ليس فارغا ونوع الملف هو ليس ملف قائمة رمادية، معالجة الملف على القائمة السوداء، لذلك لا المسح الضوئي ولكن منع ذلك على أي حال.

"filetype_greylist" [string]
  • قائمة رمادية:

كيف يعمل هذا. إذا كان النظام يسمح فقط أنواع معينة من الملفات المراد تحميلها، أو إذا كان النظام ينفي صراحة أنواع معينة من الملفات، تحديد تلك نوع الملف في قوائم بيضاء، القوائم السوداء و القوائم الرمادية يمكن أن تزيد من السرعة التي يتم تنفيذ المسح من خلال السماح للبرنامج بتخطي بعض أنواع الملفات. الشكل هو CSV (قيم مفصولة بفواصل).

الترتيب المنطقي للمعالجة. إذا نوع الملف موجود في القائمة البيضاء، لا يفحص ولا تحجب الملف، وعدم التدقيق في ملف ضد القائمة السوداء أو القائمة الرمادية. إذا نوع الملف موجود في القائمة السوداء، لا تفحص الملف ولكن منع ذلك على أي حال، وعدم التدقيق في ملف ضد قائمة رمادية. إذا كانت قائمة رمادية فارغة أو إذا كانت قائمة رمادية ليس فارغا من نوع الملف، مسح الملفات حسب طبيعتها وتحديد ما إذا كان لمنع ذلك بناء على نتائج الفحص، ولكن إذا كانت قائمة رمادية ليس فارغا ونوع الملف هو ليس ملف قائمة رمادية، معالجة الملف على القائمة السوداء، لذلك لا المسح الضوئي ولكن منع ذلك على أي حال.

"check_archives" [bool]
  • محاولة للتحقق من محتويات المحفوظات؟ = كاذبة لا تحقق. صحيح/True = افحص [افتراضي]. المدعومة: Zip (يتطلب libzip)، Tar، Rar (يتطلب التمديد rar).
"filesize_archives" [bool]
  • ترحيل حجم ملف القائمة السوداء / قائمة بيضاء لمحتويات المحفوظات؟ زائفة/False = لا (فقط كل ما يدرجون)؛ صحيح/True = نعم [افتراضي].
"filetype_archives" [bool]
  • ترحيل نوع الملف القائمة السوداء / القائمة البيضاء لمحتويات المحفوظات؟ زائفة/False = لا (فقط كل ما يدرجون) [افتراضي]. صحيح/True = نعم.
"max_recursion" [int]
  • الحد الأقصى لإعادة الحد الأقصى لعمق المحفوظات. افتراضي = 3.
"block_encrypted_archives" [bool]
  • كشف ومنع تشفير المحفوظات؟ لأن phpMussel ليست قادرة على مسح محتويات المحفوظات مشفرة، فمن الممكن أن التشفير أرشيف يجوز توظيف من قبل مهاجم كوسيلة لمحاولة تجاوز phpMussel، والماسحات الضوئية مكافحة الفيروسات وغيرها من مثل هذه الحماية. يمكن أن تعليمات phpMussel لمنع أي المحفوظات التي كان تكتشف لتكون مشفرة المحتمل أن يساعد على الحد من أي مخاطر المرتبطة بهذه مثل هذه الاحتمالات. زائفة/False = لا؛ صحيح/True = نعم [افتراضي].
"max_files_in_archives" [int]
  • الحد الأقصى لعدد الملفات المطلوب مسحها من داخل الأرشيف قبل إحباط الفحص. افتراضي = 0 (ليس أي حد أقصى).
"chameleon_from_php" [bool]
  • البحث عن العنوان PHP في الملفات التي ليست ملفات PHP و لا المحفوظات معترفة بها. صحيح/True = على. زائفة/False = إيقاف.
"can_contain_php_file_extensions" [string]
  • قائمة ملحقات الملفات المسموح بها تحتوي على شفرة PHP، مفصولة بفواصل. إذا تم تمكين الكشف عن هجوم حرباء PHP، فسيتم الكشف عن الملفات التي تحتوي على كود PHP، والتي تحتوي على ملحقات ليست موجودة في هذه القائمة، على أنها هجمات حرباء على PHP.
"chameleon_from_exe" [bool]
  • البحث عن العناوين قابلة للتنفيذ في الملفات التي ليست التنفيذية ولا المحفوظات المعترف بها والقابلة للتنفيذ التي هي العناوين غير صحيحة. صحيح/True = على. زائفة/False = إيقاف.
"chameleon_to_archive" [bool]
  • اكتشاف رؤوس غير صحيحة في الأرشيفات والملفات المضغوطة. المدعومة: BZ/BZIP2، GZ/GZIP، LZF، RAR، ZIP صحيح/True = على. زائفة/False = إيقاف.
"chameleon_to_doc" [bool]
  • البحث عن المستندات التي عناوينها غير صحيحة (المدعومة: DOC، وزارة النقل، PPS، PPT، XLA، XLS، WIZ). صحيح/True = على. زائفة/False = إيقاف.
"chameleon_to_img" [bool]
  • البحث عن الصور التي عناوينها غير صحيحة (المدعومة: BMP، DIB، PNG، GIF، JPEG، JPG، XCF، PSD، PDD، WEBP). صحيح/True = على. زائفة/False = إيقاف.
"chameleon_to_pdf" [bool]
  • البحث عن الملفات PDF التي عناوينها غير صحيحة. صحيح/True = على. زائفة/False = إيقاف.
"archive_file_extensions" [string]
  • ملحقات ملفات الأرشيف المعترف بها (الشكل هو CSV، وينبغي فقط إضافة أو إزالة عندما تحدث المشاكل؛ إزالة دون داع قد يسبب ايجابيات كاذبة لتظهر لملفات الأرشيف، في حين اضاف داع سوف القائمة البيضاء أساسا ما كنت تقوم بإضافة من كشف المحدد الهجوم؛ تعديل مع الحذر، لاحظ أيضا أن هذا ليس له تأثير على ما المحفوظات يمكن ولا يمكن تحليلها على مستوى المحتوى). القائمة، كما هو في التقصير، يسرد تلك الأشكال الأكثر شيوعا في غالبية النظم واتفاقية الأنواع المهاجرة، ولكن عمدا ليست شاملة بالضرورة.
"block_control_characters" [bool]
  • حظر أي ملفات تحتوي على أي أحرف التحكم (عدا أسطر جديدة)؟ إذا كنت فقط تحميل نص عادي، ثم يمكنك تشغيل هذا الخيار لتوفير بعض الحماية إضافية على النظام الخاص بك. ومع ذلك، إذا قمت بتحميل أي شيء آخر غير نص عادي، وتحول هذا على قد يؤدي إلى ايجابيات كاذبة. = كاذبة لا منع [افتراضي]. صحيح/True = بلوك.
"corrupted_exe" [bool]
  • تلف الملفات وتحليل الأخطاء. خطأ = تجاهل. صحيح/True = كتلة [افتراضي]. كشف ومنع الملفات المحتمل تلف PE (محمول قابل للتنفيذ)؟ في كثير من الأحيان (ولكن ليس دائما)، عندما تلف جوانب معينة من ملف PE أو لا يمكن تحليله بشكل صحيح، فإنه يمكن أن يكون مؤشرا على وجود عدوى فيروسية. العمليات المستخدمة من قبل معظم برامج مكافحة الفيروسات للكشف عن الفيروسات في ملفات PE تتطلب تحليل تلك الملفات بطرق معينة والتي إذا كان مبرمج للفيروس هو على علم، ومحاولة خصيصا لمنع، من أجل السماح للفيروس لتبقى غير مكتشفة.
"decode_threshold" [string]
  • الحد الأقصى لطول البيانات الخام من خلاله أن يتم الكشف عن أوامر فك (في حالة وجود أي مشكلات في الأداء ملحوظة أثناء المسح). افتراضي = 512KB. صفر أو قيمة فارغة تعطيل عتبة (إزالة مثل هذا القيد على أساس حجم الملف).
"scannable_threshold" [string]
  • الحد الأقصى لطول البيانات الخام التي يسمح phpMussel لقراءة ومسح (في حالة وجود أي مشكلات في الأداء ملحوظة أثناء المسح). افتراضي = 32MB. صفر أو قيمة فارغة تعطيل العتبة. عموما، يجب أن لا تكون هذه القيمة أقل من متوسط حجم الملف من تحميل الملفات التي تريد وتتوقع الحصول على الخادم الخاص بك أو الموقع، لا ينبغي أن يكون أكثر من التوجيه filesize_limit، ويجب أن لا يكون خامس أكثر من ما يقرب من واحد من مجموع تخصيص الذاكرة المسموح منح لPHP عن طريق ملف التكوين "php.ini". هذا التوجيه موجود في محاولة لمنع phpMussel من استخدام ما يصل الكثير من الذاكرة (التي تريد منعها من أن تكون قادرة على مسح بنجاح الملفات فوق حجم الملف معين).
"allow_leading_trailing_dots" [bool]
  • السماح النقاط الرائدة والزائدة في أسماء الملفات؟ يمكن استخدام هذا أحيانًا لإخفاء الملفات أو خداع بعض الأنظمة للسماح بدخول الدليل. زائفة/False = لا تسمح [افتراضي]. صحيح/True = السماح.
"block_macros" [bool]
  • حاول حظر أي ملفات تحتوي على وحدات ماكرو؟ قد تحتوي بعض أنواع المستندات وجداول البيانات على وحدات ماكرو قابلة للتنفيذ، وبالتالي توفير ناقلات برامج ضارة محتملة خطيرة. زائفة/False = لا تمنع [افتراضي]. صحيح/True = تمنع.
"only_allow_images" [bool]
  • عند التعيين على true، أي ملفات ليست صورًا واجهها الماسح الضوئي سيتم وضع علامة على الفور، دون أن يتم فحصها. قد يساعد هذا في تقليل الوقت اللازم لإكمال الفحص في بعض الحالات. تعيين على false بشكل افتراضي.

"quarantine" (التصنيف)

التكوين الحجر الصحي.

"quarantine_key" [string]
  • phpMussel قادر على عزل تحميل الملفات المحجوبة، إذا كان هذا هو ما تريد أن تفعله. المستخدمين العاديين من phpMussel التي ترغب ببساطة لحماية مواقعها على شبكة الإنترنت أو بيئة استضافة دون وجود أي مصلحة في تحليل عميق أي ترفع علم تحميل الملفات حاول يجب ترك هذه الوظيفة ذوي الاحتياجات الخاصة، ولكن أي المستخدمين المهتمين في مزيد من التحليل للترفع علم حاولت تحميل الملفات للبحث عن البرامج الضارة أو ما شابه مثل هذه الأمور ينبغي أن تمكن هذه الوظيفة. الحجر الصحي لترفع العلم تحميل الملفات حاول يمكن في بعض الأحيان أن تساعد في تصحيح ايجابيات كاذبة، إذا كان هذا هو الشيء الذي كثيرا ما يحدث لك. إلى تعطيل وظيفة العزل، ببساطة مغادرة quarantine_key التوجيه فارغة، أو مسح محتويات هذا التوجيه إذا لم يكن خاليا بالفعل. لتمكين وظيفة العزل، وإدخال قيمة في التوجيه. و quarantine_key هي ميزة أمنية مهمة من وظائف الحجر الصحي المطلوبة كوسيلة لمنع وظيفة الحجر الصحي من أن تستغل من قبل المهاجمين المحتملين، وكوسيلة لمنع أي احتمال تنفيذ البيانات المخزنة داخل الحجر الصحي. و quarantine_key ينبغي أن يعامل بنفس الطريقة التي يعامل بها كلمات السر الخاصة بك: وكلما كان ذلك أفضل، وحراسته مشددة. للحصول على أفضل تأثير، استخدم بالتزامن مع delete_on_sight.
"quarantine_max_filesize" [string]
  • الحد الأقصى لحجم الملف المسموح به من الملفات للحجر الصحي. لن يكون الحجر الصحي الملفات أكبر من القيمة المحددة. هذا التوجيه لا يقل أهمية عن وسيلة لجعل الأمر أكثر صعوبة لأي مهاجمين محتملين لإغراق الحجر الصحي الخاص مع البيانات غير المرغوب فيها مما يمكن أن يسبب استخدام البيانات التشغيل بعيدا عن خدمة الاستضافة. الافتراضي = 2MB.
"quarantine_max_usage" [string]
  • الحد الأقصى لاستخدام الذاكرة يسمح للحجر الصحي. إذا كان إجمالي الذاكرة المستخدمة من قبل الحجر الصحي تصل هذه القيمة، سيتم حذف أقدم الملفات المعزولة حتى الذاكرة الإجمالية المستخدمة لم تعد تصل هذه القيمة. هذا التوجيه لا يقل أهمية عن وسيلة لجعل الأمر أكثر صعوبة لأي مهاجمين محتملين لإغراق الحجر الصحي الخاص مع البيانات غير المرغوب فيها مما يمكن أن يسبب استخدام البيانات التشغيل بعيدا عن خدمة الاستضافة. الافتراضي = 64MB.
"quarantine_max_files" [int]
  • الحد الأقصى لعدد الملفات التي يمكن أن توجد في وحدة العزل. عند إضافة ملفات جديدة إلى وحدة العزل، إذا تم تجاوز هذا الرقم، فسيتم حذف الملفات القديمة حتى لا يتجاوز الجزء المتبقي هذا الرقم. الافتراضي = 100.

"virustotal" (التصنيف)

التكوين من أجل Virus Total.

"vt_public_api_key" [string]
  • اختياريا، phpMussel غير قادرة على مسح الملفات باستخدام الفيروسات مجموع API كوسيلة لتوفير مستوى تتعزز بشكل كبير من الحماية ضد الفيروسات، و ملفات التجسس، والبرمجيات الخبيثة وغيرها من التهديدات. افتراضيا، ملفات المسح الضوئي باستخدام الفيروسات مجموع API يتم تعطيل. لتمكينه، لا بد من وضع مفتاح API من الفيروسات إجمالي. ويرجع ذلك إلى فائدة كبيرة أن هذا يمكن أن توفر لك، هذا شيء أنا أوصي تمكين. يرجى أن يكون على علم، مع ذلك، أن استخدام الفيروسات مجموع API، التي يجب أن تتوافق مع شروط الخدمة، ويجب أن تلتزم جميع المبادئ التوجيهية حسب وصفه الفيروسات مجموع الوثائق! لا يجوز لك استخدام هذه الميزة التكامل ما لم: لقد قرأت ووافقت على شروط الخدمة من فيروس توتال و API لها. لقد قرأت وفهمت، كحد أدنى، ديباجة الفيروسات وثائق API ملفه مجموع (كل شيء بعد "فايروس توتال V2.0 API العام" ولكن قبل "المحتويات").
أنظر أيضا:
"vt_suspicion_level" [int]
  • افتراضيا، سوف يقوم phpMussel بتقييد الملفات التي تقوم بمسح باستخدام الفيروسات API الكلي لتلك الملفات التي تعتبرها "المشبوهة". يمكنك ضبط اختياريا هذا التقييد عن طريق تغيير قيمة التوجيه "vt_suspicion_level".
vt_suspicion_level
├─0 (تحقق فقط من الملفات ذات الوزن الإرشادي.): سيتم فحص الملفات فقط إذا كانت تحمل الوزن
│ الإرشادي. يمكن أن يحدث "الوزن الإرشادي" من
│ التوقيعات التي تلتقط بصمات الأصابع التي
│ تشير إلى الإصابة ولكنها لا تضمن العدوى.
│ بالنسبة للنتائج التي تبرر الشك ولكنها لا
│ توفر أي يقين، يمكن أن يعمل البحث على توفير
│ رأي ثانٍ.
├─1 (تحقق من الملفات ذات الوزن الإرشادي والملفات القابلة للتنفيذ والملفات التي يحتمل أن تحتوي على بيانات قابلة للتنفيذ.): تتضمن هذه الملفات Windows PE و Linux ELF و Mach-O و DOCX
│ و ZIP وما إلى ذلك.
└─2 (تحقق من جميع الملفات.)
"vt_weighting" [int]
  • هل phpMussel يطبق نتائج المسح باستخدام الفيروسات مجموع API كما المكتشفة أو الممكن كشفها؟ يوجد هذا التوجيه لأنه على الرغم من أن مسح ملف باستخدام محركات متعددة (كما فايروس توتال لا) ينبغي أن يؤدي في معدل اكتشاف زيادة (وبالتالي في عدد أكبر من الملفات الخبيثة الوقوع)، فإنه يمكن أن يؤدي أيضا إلى ارتفاع عدد كاذبة الإيجابيات، وبالتالي، في بعض الظروف، فإن نتائج المسح يمكن الاستفادة بشكل أفضل كما على درجة الثقة بدلا من أن تكون نتيجة محددة. إذا تم استخدام قيمة 0، سيتم تطبيق نتائج المسح باستخدام الفيروسات مجموع API كما المكتشفة و بالتالي إذا أي محرك تستخدم من قبل الفيروسات مجموع أعلام الملف تم مسحها ضوئيا بأنها خبيثة، وphpMussel النظر في الملف إلى تكون ضارة. إذا تم استخدام أي قيمة أخرى، سيتم تطبيق نتائج المسح باستخدام الفيروسات مجموع API كما الترجيح الكشف و بالتالي فإن عدد من المحركات المستخدمة من قبل الفيروسات إجمالي هذا العلم الملف تم مسحها ضوئيا بأنها خبيثة سيكون بمثابة نتيجة الثقة (أو الترجيح الكشف) عن ما إذا كان ملف تم مسحها ضوئيا ينبغي النظر الخبيثة التي كتبها phpMussel (القيمة المستخدمة سيمثل الحد الأدنى من الثقة يسجل أو الوزن المطلوب من أجل أن تعتبر ضارة). يتم استخدام قيمة 0 افتراضيا.
"vt_quota_rate" [int]
  • استنادا إلى وثائق الفيروسات الكلي API، "فإنه يقتصر على الأكثر 4 طلبات من أي نوع في أي إطار زمني معين 1 دقيقة. إذا قمت بتشغيل honeyclient، مصيدة أو أي أتمتة الآخر الذي يجري لتوفير الموارد اللازمة لفايروس توتال ولا استرداد فقط تقارير يحق لك الحصول على أعلى حصص معدلات الطلب". افتراضيا، سوف phpMussel الالتزام الصارم لهذه القيود، ولكن نظرا لإمكانية هذه الحصص نسبة تجري زيادة، وتقدم هذه التوجيهات اثنين كوسيلة لتتمكن من إرشاد phpMussel على ما الحد الأقصى ينبغي أن تلتزم بها. إلا إذا كنت قد أعطيت تعليمات للقيام بذلك، فإنه من غير المستحسن بالنسبة لك لزيادة هذه القيم و لكن إذا كنت قد واجهت مشاكل تتعلق الوصول الحصص الخاصة بك، وخفض هذه القيم قد يساعد في بعض الأحيان كنت في التعامل مع هذه المشاكل. يتم تحديد الحد الأقصى معدل حسابك عن طلبات "vt_quota_rate" من أي نوع في أي إطار "vt_quota_time" الوقت دقيقة معين.
"vt_quota_time" [int]
  • (انظر الوصف أعلاه).

"urlscanner" (التصنيف)

التكوين من الماسح الضوئي URL.

"google_api_key" [string]
  • العدد الأقصى المسموح به من عمليات بحث واجهة برمجة التطبيقات لأداء في تكرار المسح الفردية.
أنظر أيضا:
"maximum_api_lookups" [int]
  • العدد الأقصى المسموح به من عمليات بحث واجهة برمجة التطبيقات لأداء في تكرار المسح الفردية. لأن كل بحث API إضافية سوف يضيف إلى الوقت الإجمالي المطلوب لإكمال كل تكرار المسح، قد ترغب في اشتراط وجود قيود من أجل الإسراع في عملية المسح الشاملة. عند تعيينها إلى 0، سيتم تطبيق الحد الأقصى لا هذا العدد المسموح به. تعيين إلى 10 افتراضيا.
"maximum_api_lookups_response" [bool]
  • ماذا تفعل إذا تم تجاوز الحد الأقصى المسموح به من عمليات بحث API؟ = كاذبة لا تفعل شيئا (متابعة المعالجة) [افتراضي]. صحيح/True = تحديد الملف.
"cache_time" [int]
  • متى (بالثواني) يجب التوصل إلى نتائج عمليات بحث API؟ الافتراضي هو 3600 ثانية (1 ساعة).

"legal" (التصنيف)

التكوين للمتطلبات القانونية.

"pseudonymise_ip_addresses" [bool]
  • إخفاء عناوين IP عند كتابة السجلات؟ صحيح/True = نعم [افتراضي]؛ زائفة/False = لا.
"privacy_policy" [string]
  • عنوان سياسة الخصوصية ذات الصلة ليتم عرضها في تذييل الصفحات التي تم إنشاؤها. حدد عنوان URL، أو اتركه فارغًا لتعطيله.

"supplementary_cache_options" (التصنيف)

خيارات ذاكرة التخزين المؤقت التكميلية. ملاحظة: قد يؤدي تغيير هذه القيم إلى تسجيل خروجك.

"prefix" [string]
  • سيتم إضافة القيمة المحددة هنا إلى جميع مفاتيح إدخال ذاكرة التخزين المؤقت. افتراضي = "phpMussel_". عند وجود عدة عمليات تثبيت على نفس الخادم، يمكن أن يكون ذلك مفيدًا للحفاظ على ذاكرة التخزين المؤقت منفصلة عن بعضها البعض.
"enable_apcu" [bool]
  • يحدد هذا ما إذا كنت تريد استخدام APCu للتخزين المؤقت. افتراضي = True (صحيح).
"enable_memcached" [bool]
  • يحدد هذا ما إذا كنت تريد استخدام Memcached للتخزين المؤقت. افتراضي = False (زائفة).
"enable_redis" [bool]
  • يحدد هذا ما إذا كنت تريد استخدام Redis للتخزين المؤقت. افتراضي = False (زائفة).
"enable_pdo" [bool]
  • يحدد هذا ما إذا كنت تريد استخدام PDO للتخزين المؤقت. افتراضي = False (زائفة).
"memcached_host" [string]
  • قيمة المضيف Memcached. افتراضي = "localhost".
"memcached_port" [int]
  • قيمة منفذ Memcached. افتراضي = "11211".
"redis_host" [string]
  • قيمة المضيف Redis. افتراضي = "localhost".
"redis_port" [int]
  • قيمة منفذ Redis. افتراضي = "6379".
"redis_timeout" [float]
  • Redis قيمة المهلة. افتراضي = "2.5".
"redis_database_number" [int]
  • رقم قاعدة بيانات Redis. افتراضي = 0. ملاحظة: لا يمكن استخدام قيم غير 0 مع Redis Cluster.
"pdo_dsn" [string]
  • قيمة PDO DSN. افتراضي = "mysql:dbname=phpmussel;host=localhost;port=3306".

FAQ. ما هو "PDO DSN"؟ كيف يمكنني استخدام PDO مع phpMussel؟

"pdo_username" [string]
  • PDO اسم المستخدم.
"pdo_password" [string]
  • PDO كلمه السر.

"frontend" (التصنيف)

التكوين للواجهة الأمامية.

"frontend_log" [string]
  • ملف لتسجيل محاولات الدخول الأمامية. تحديد اسم الملف، أو اتركه فارغا لتعطيل.

نصيحة مفيدة: يمكنك إرفاق معلومات التاريخ/الوقت بأسماء ملفات السجل باستخدام العناصر النائبة لتنسيق الوقت. يتم عرض العناصر النائبة لتنسيق الوقت المتوفرة عند {{Links.ConfigRef.time_format}}.

"max_login_attempts" [int]
  • الحد الأقصى لعدد محاولات تسجيل الدخول (front-end). الافتراضي = 5.
"numbers" [string]
  • كيف تفضل الأرقام ليتم عرضها؟ حدد المثال الذي يبدو أكثر صحيح لك.
numbers
├─Arabic-1 ("١٢٣٤٥٦٧٫٨٩")
├─Arabic-2 ("١٬٢٣٤٬٥٦٧٫٨٩")
├─Arabic-3 ("۱٬۲۳۴٬۵۶۷٫۸۹")
├─Arabic-4 ("۱۲٬۳۴٬۵۶۷٫۸۹")
├─Armenian ("Ռ̅Մ̅Լ̅ՏՇԿԷ")
├─Base-12 ("4b6547.a8")
├─Base-16 ("12d687.e3")
├─Bengali-1 ("১২,৩৪,৫৬৭.৮৯")
├─Burmese-1 ("၁၂၃၄၅၆၇.၈၉")
├─China-1 ("123,4567.89")
├─Chinese-Simplified ("一百二十三万四千五百六十七点八九")
├─Chinese-Simplified-Financial ("壹佰贰拾叁萬肆仟伍佰陆拾柒点捌玖")
├─Chinese-Traditional ("一百二十三萬四千五百六十七點八九")
├─Chinese-Traditional-Financial ("壹佰貳拾叄萬肆仟伍佰陸拾柒點捌玖")
├─Fullwidth ("1234567.89")
├─Hebrew ("א׳׳ב׳קג׳יד׳ךסז")
├─India-1 ("12,34,567.89")
├─India-2 ("१२,३४,५६७.८९")
├─India-3 ("૧૨,૩૪,૫૬૭.૮૯")
├─India-4 ("੧੨,੩੪,੫੬੭.੮੯")
├─India-5 ("೧೨,೩೪,೫೬೭.೮೯")
├─India-6 ("౧౨,౩౪,౫౬౭.౮౯")
├─Japanese ("百万二十万三万四千五百六十七・八九分")
├─Javanese ("꧑꧒꧓꧔꧕꧖꧗.꧘꧙")
├─Khmer-1 ("១.២៣៤.៥៦៧,៨៩")
├─Lao-1 ("໑໒໓໔໕໖໗.໘໙")
├─Latin-1 ("1,234,567.89")
├─Latin-2 ("1 234 567.89")
├─Latin-3 ("1.234.567,89")
├─Latin-4 ("1 234 567,89")
├─Latin-5 ("1,234,567·89")
├─Mayan ("𝋧𝋮𝋦𝋨𝋧.𝋱𝋰")
├─Mongolian ("᠑᠒᠓᠔᠕᠖᠗.᠘᠙")
├─NoSep-1 ("1234567.89")
├─NoSep-2 ("1234567,89")
├─Odia ("୧୨୩୪୫୬୭.୮୯")
├─Roman ("M̅C̅C̅X̅X̅X̅I̅V̅DLXVII")
├─SDN-Dwiggins ("4E6,547;X8")
├─SDN-Pitman ("4↋6,547;↊8")
├─Tamil ("௲௲௨௱௲௩௰௲௪௲௫௱௬௰௭")
├─Thai-1 ("๑,๒๓๔,๕๖๗.๘๙")
├─Thai-2 ("๑๒๓๔๕๖๗.๘๙")
└─Tibetan ("༡༢༣༤༥༦༧.༨༩")
"default_algo" [string]
  • يحدد الخوارزمية التي سيتم استخدامها لكل كلمات المرور والجلسات المستقبلية.
default_algo
├─PASSWORD_DEFAULT ("PASSWORD_DEFAULT")
├─PASSWORD_BCRYPT ("PASSWORD_BCRYPT")
├─PASSWORD_ARGON2I ("PASSWORD_ARGON2I")
└─PASSWORD_ARGON2ID ("PASSWORD_ARGON2ID (PHP >= 7.3.0)")
"theme" [string]
  • الجمالية المراد استخدامها في الواجهة الأمامية phpMussel.
theme
├─default ("Default")
├─bluemetal ("Blue Metal")
├─fullmoon ("Full Moon")
├─moss ("Moss")
├─primer ("Primer")
├─primerdark ("Primer Dark")
├─rbi ("Red-Blue Inverted")
├─slate ("Slate")
└─…آخر
"magnification" [float]
  • تكبير الخط. افتراضي = 1.
"custom_header" [string]
  • تم إدراجها بتنسيق HTML في بداية جميع الصفحات الأمامية. قد يكون هذا مفيدًا في حالة رغبتك في تضمين شعار موقع ويب أو رأس مخصص أو نصوص أو ما شابه ذلك في جميع هذه الصفحات.
"custom_footer" [string]
  • تم إدراجها بتنسيق HTML في الجزء السفلي من جميع الصفحات الأمامية. قد يكون هذا مفيدًا في حالة رغبتك في تضمين إشعار قانوني أو رابط اتصال أو معلومات تجارية أو ما شابه ذلك في كل هذه الصفحات.

"web" (التصنيف)

التكوين لمعالج التحميل.

"uploads_log" [string]
  • مكان تسجيل جميع التحميلات المحظورة. تحديد اسم الملف، أو اتركه فارغا لتعطيل.

نصيحة مفيدة: يمكنك إرفاق معلومات التاريخ/الوقت بأسماء ملفات السجل باستخدام العناصر النائبة لتنسيق الوقت. يتم عرض العناصر النائبة لتنسيق الوقت المتوفرة عند {{Links.ConfigRef.time_format}}.

"forbid_on_block" [bool]
  • هل phpMussel يرسل 403 من العناوين مع الرسالة منعت إيداع الملف، أو يبقى مع المعتادة 200 موافق؟ خطأ = رقم (200). صحيح/True = نعم (403) [الافتراضي].
"unsupported_media_type_header" [bool]
  • هل يجب على phpMussel إرسال 415 رأسًا عندما يتم حظر التحميلات بسبب أنواع الملفات المدرجة في القائمة السوداء؟ عندما يكون هذا الإعداد صحيحًا، يحل هذا الإعداد محل forbid_on_block. زائفة/False = لا [الافتراضي]؛ صحيح/True = نعم.
"max_uploads" [int]
  • العدد الأقصى المسموح به من ملفات لمسح أثناء تحميل الملفات مسح قبل إحباط عملية الفحص وإعلام المستخدم أنهم تحميل أكثر من اللازم في وقت واحد! يوفر الحماية ضد هجوم النظري حيث يحاول أحد المهاجمين دوس النظام الخاص بك أو CMS من الحمولة الزائدة phpMussel إلى إبطاء عملية PHP لوقف طحن. الموصى بها: 10. أنت قد ترغب في رفع أو خفض هذا الرقم اعتمادا على سرعة الجهاز. لاحظ أن هذا الرقم لا يأخذ في الحسبان أو تتضمن محتويات المحفوظات.
"ignore_upload_errors" [bool]
  • يجب أن يكون هذا التوجيه عموما هو تعطيل ما لم تصبح مطلوبة حصول على الوظائف الصحيحة لـ phpMussel على النظام الخاص بك محددة. عادة، عندما يكون في وضع تعطيل، عندما يكتشف phpMussel وجود عناصر في مجموعة $_FILES، وأنها سوف محاولة لبدء فحص الملفات التي تمثل تلك العناصر، وإذا كانت تلك العناصر هي فارغة أو فارغة، سوف phpMussel العودة رسالة خطأ. هذا هو السلوك الصحيح للـ phpMussel. ومع ذلك، بالنسبة لبعض CMS، العناصر الفارغة في $_FILES يمكن أن تحدث نتيجة لسلوك طبيعي لتلك CMS، أو أخطاء قد يتم الإعلام عندما لم تكن هناك أي، في هذه الحالة، السلوك العادي للphpMussel سوف تتدخل مع السلوك العادي من تلك CMS. في حال حدوث مثل هذه الحالة بالنسبة لك، تمكين هذا الخيار سوف يكلف phpMussel ليست محاولة لبدء المسح الضوئي لمثل هذه العناصر الفارغة، تجاهلها عندما وجدت وعدم إعادة أي رسائل خطأ ذات الصلة، مما يتيح استمرار طلب الصفحة. زائفة/False = أطفئ؛ صحيح/True = تشغيل.
"theme" [string]
  • الجمالية المراد استخدامها لصفحة "رفض تحميل".
theme
├─default ("Default")
├─bluemetal ("Blue Metal")
├─fullmoon ("Full Moon")
├─moss ("Moss")
├─primer ("Primer")
├─primerdark ("Primer Dark")
├─rbi ("Red-Blue Inverted")
├─slate ("Slate")
└─…آخر
"magnification" [float]
  • تكبير الخط. افتراضي = 1.
"custom_header" [string]
  • تم إدراجها بتنسيق HTML في بداية كل صفحات "رفض تحميل". قد يكون هذا مفيدًا في حالة رغبتك في تضمين شعار موقع ويب أو رأس مخصص أو نصوص أو ما شابه ذلك في جميع هذه الصفحات.
"custom_footer" [string]
  • تم إدراجها بتنسيق HTML في الجزء السفلي من جميع صفحات "رفض تحميل". قد يكون هذا مفيدًا في حالة رغبتك في تضمين إشعار قانوني أو رابط اتصال أو معلومات تجارية أو ما شابه ذلك في كل هذه الصفحات.

"phpmailer" (التصنيف)

التكوين ل PHPMailer (يستخدم للمصادقة الثنائية ولإشعارات البريد الإلكتروني).

"event_log" [string]
  • ملف لتسجيل جميع الأحداث المتعلقة ب PHPMailer. تحديد اسم الملف، أو اتركه فارغا لتعطيل.

نصيحة مفيدة: يمكنك إرفاق معلومات التاريخ/الوقت بأسماء ملفات السجل باستخدام العناصر النائبة لتنسيق الوقت. يتم عرض العناصر النائبة لتنسيق الوقت المتوفرة عند {{Links.ConfigRef.time_format}}.

"enable_two_factor" [bool]
  • يحدد هذا التوجيه ما إذا كان سيتم استخدام 2FA للحسابات front-end أم لا.
"enable_notifications" [string]
  • إذا كنت تريد أن يتم إعلامك عبر البريد الإلكتروني عند حظر التحميل، فحدد عنوان البريد الإلكتروني للمستلم هنا.
"skip_auth_process" [bool]
  • تعيين هذا التوجيه إلى true يرشد PHPMailer لتخطي عملية المصادقة التي تحدث عادة عند إرسال البريد الإلكتروني عبر SMTP. يجب تجنب هذا، لأن تخطي هذه العملية قد يعرض البريد الإلكتروني الصادر إلى هجمات MITM، ولكنه قد يكون ضروريًا في الحالات التي تمنع فيها هذه العملية من اتصال PHPMailer بخادم SMTP.
"host" [string]
  • مضيف SMTP الذي يستخدم للبريد الإلكتروني الصادر.
"port" [int]
  • رقم المنفذ المراد استخدامه للبريد الإلكتروني الصادر. افتراضي = 587.
"smtp_secure" [string]
  • البروتوكول المستخدم عند إرسال البريد الإلكتروني عبر SMTP (TLS أو SSL).
smtp_secure
├─default ("-")
├─tls ("TLS")
└─ssl ("SSL")
"smtp_auth" [bool]
  • يحدد هذا التوجيه ما إذا كنت تريد مصادقة جلسات SMTP (يجب ألا يغير هذا عادة).
"username" [string]
  • اسم المستخدم لاستخدامه عند إرسال البريد الإلكتروني عبر SMTP.
"password" [string]
  • كلمة المرور لاستخدامها عند إرسال البريد الإلكتروني عبر SMTP.
"set_from_address" [string]
  • عنوان المرسل للاستشهاد عند إرسال البريد الإلكتروني عبر SMTP.
"set_from_name" [string]
  • اسم المرسل للاستشهاد عند إرسال البريد الإلكتروني عبر SMTP.
"add_reply_to_address" [string]
  • عنوان الرد للاستشهاد عند إرسال البريد الإلكتروني عبر SMTP.
"add_reply_to_name" [string]
  • اسم الرد للاستشهاد عند إرسال البريد الإلكتروني عبر SMTP.

٦. شكل/تنسيق التوقيع

أنظر أيضا:
أول 9 بايت [x0-x8] من ملف التوقيع phpMussel هو phpMussel، والعمل بمثابة "عدد سحري" (magic number)، لتحديدها كملفات توقيع (وهذا يساعد على منع عن طريق الخطأ باستخدام الملفات التي ليست ملفات التوقيع). البايت المقبل [x9] يحدد نوع ملف التوقيع، والتي يجب أن تعرف من أجل أن تكون قادرة على تفسير ملف التوقيع بشكل صحيح. يتم التعرف على الأنواع التالية من ملفات التوقيع:

 
نوع
بايت
وصف
General_Command_Detections 0?
بالنسبة إلى ملفات التوقيع "القيم المفصولة بفواصل". التوقيعات هي سلاسل مشفرة عشرية للبحث عن الملفات. التوقيعات هنا ليس لديها أي أسماء أو تفاصيل أخرى (فقط السلسلة للكشف).
Filename 1?
لتوقيعات اسم الملف.
Hash 2?
لتوقيعات تجزئة الملف.
Standard 3?
لملفات التوقيع التي تعمل مباشرة مع محتوى الملف.
Standard_RegEx 4?
لملفات التوقيع التي تعمل مباشرة مع محتوى الملف. يمكن أن تحتوي التوقيعات على تعبيرات عادية.
Normalised 5?
لملفات التوقيع التي تعمل مع محتوى ملف أنسي-تطبيع.
Normalised_RegEx 6?
لملفات التوقيع التي تعمل مع محتوى ملف أنسي-تطبيع. يمكن أن تحتوي التوقيعات على تعبيرات عادية.
HTML 7?
لملفات التوقيع التي تعمل مع محتوى ملف بتنسيق هتمل.
HTML_RegEx 8?
لملفات التوقيع التي تعمل مع محتوى ملف بتنسيق هتمل. يمكن أن تحتوي التوقيعات على تعبيرات عادية.
PE_Extended 9?
لملفات التوقيع التي تعمل مع البيانات الوصفية PE (باستثناء البيانات الوصفية المقطعية PE).
PE_Sectional A?
لملفات التوقيع التي تعمل مع البيانات الوصفية المقطع PE.
Complex_Extended B?
لملفات التوقيع التي تعمل مع قواعد مختلفة استنادا إلى بيانات التعريف الموسعة التي تم إنشاؤها بواسطة phpMussel.
URL_Scanner C?
لملفات التوقيع التي تعمل مع عناوين URL.
البايت المقبل [x10] هو خط جديد [0A]، ويختتم رأس ملف التوقيع phpMussel.

كل خط غير فارغ بعد ذلك هو توقيع أو قاعدة. كل توقيع أو قاعدة تحتل سطر واحد. وفيما يلي وصف لأشكال التوقيع المعتمدة.

توقيعات اسم الملف

كل توقيعات اسم الملف تتبع التنسيق التالي:

NAME:FNRX

حيث "NAME" هو الاسم المذكور في التوقيع و "FNRX" نمط التعابير المنطقية بحيث تتطابق الأسماء (الغير مشفرة) مقابله.

توقيعات تجزئة

جميع التوقيعات تجزئة تتبع التنسيق:

HASH:FILESIZE:NAME

حيث "HASH" هي تجزئة تجزئة للملف كله (عادة MD5)، و "FILESIZE" هي الحجم الإجمالي لذلك الملف و "NAME" هو الاسم المذكور في التوقيع.

توقيعات PE الجزئية

جميع توقيعات PE الجزئية تتبع التنسيق:

SIZE:HASH:NAME

حيث "HASH" هو تجزئة "MD5" لجزء من ملف PE، "SIZE" هو الحجم الكلي لهذا القسم، "NAME" هو الاسم المذكور في التوقيع.

توقيعات PE الموسعة

جميع توقيعات PE الموسعة تتبع التنسيق:

$VAR:HASH:SIZE:NAME

حيث $VAR هو اسم المتغير PE للتطابق معه، "HASH" هو تجزئة "MD5" هذا المتغير، "SIZE" هو الحجم الكلي لهذا المتغير والاسم هو الاسم المذكور في التوقيع.

التوقيعات المركبة الموسعة

التواقيع المركبة الموسعة هي مختلفة عن أنواع أخرى من التوقيعات المحتملة مع phpMussel، في أنهم يقومون بمطابقة مع ما تم تعيينه من قبل التوقيعات أنفسهم وأنها يمكن أن تتطابق ضد معايير متعددة. محدد مع معايير المطابقة ";" ونوع المطابقة و بيانات المطابقة و كل معايير المطابقة محددة بواسطة ":" ذلك أن شكل هذه التوقيعات يميل قليلا إلى مثل:

$variable1:SOMEDATA;$variable2:SOMEDATA;SignatureName

كل شيء آخر

جميع التوقيعات الأخرى تتبع التنسيق:

NAME:HEX:FROM:TO

حيث "NAME" هو الاسم المذكور لهذا التوقيع و "HEX" هو الترميز الجزئي السادس عشري من الملف المراد أن يقابله تواقيع معينة. من وإلى المعاملات الاختيارية، مشيرا من خلالها إلى المواضع في البيانات المصدر للتحقق منها.

التعابير المنطقية

أي شكل من أشكال التعابير المنطقية يتم فهمها ومعالجتها بشكل صحيح عن طريق PHP و يجب أيضا أن يكون مفهوما بشكل صحيح و تتم معالجتها بواسطة phpMussel و توقيعاتها. مع ذلك، أود أن أقترح اتخاذ الحذر الشديد عند كتابة توقيعات التعابير المنطقية الجديدة، لأنه إذا لم تكن متأكدا تماما مما تفعله، يمكن أن يكون هناك عدم انتظام كبير و/أو نتائج غير متوقعة. القي نظرة على phpMussel مصدر الترميز إذا لم تكن متأكدا تماما من السياق الذي يتم تحليل البيانات باستخدام التعابير المنطقية. أيضا، تذكر أن كل أنماط (باستثناء اسم الملف، أرشيف البيانات الوصفية وأنماط MD5) يجب أن تتبع ترميز سادس عشري(عند تركيب نمط ما، بالتأكيد)!


٧. مشاكل التوافق المعروفة

التوافق البرمجي لبرنامج مكافحة الفيروسات

من المعروف أن مشاكل التوافق بين phpMussel وبعض بائعي برامج مكافحة الفيروسات تحدث في بعض الأحيان في الماضي، لذلك كل بضعة أشهر، أتحقق من أحدث الإصدارات المتاحة من قاعدة بيانات phpMussel ضد Virus Total، لمعرفة ما إذا كانت هناك أية مشكلات تم الإبلاغ عنها هناك. عندما يتم الإبلاغ عن المشكلات هناك، سأذكر المشاكل هنا في الوثائق.

عندما راجعت مؤخرًا (2022.05.12)، لم يتم الإبلاغ عن أي مشاكل.

لا أتحقق من ملفات التوقيع أو الوثائق أو أي محتوى محيطي آخر. تسبب ملفات التوقيع دائمًا بعض الإيجابيات الخاطئة عندما تكتشفها حلول مكافحة الفيروسات الأخرى. لذلك أوصي بشدة، إذا كنت تخطط لتثبيت phpMussel على جهاز يوجد به بالفعل حل آخر لمكافحة الفيروسات، لإدراج ملفات توقيع phpMussel في القائمة البيضاء.

انظر أيضا: مخططات التوافق.


٨. أسئلة وأجوبة (FAQ)

ما هو "التوقيع"؟

في phpMussel، يشير "التوقيع" إلى البيانات التي تعمل كمعرف، وعادة ما تكون قطعة صغيرة من الكل أكبر لشيء نسعى. تتضمن عادة تصنيفا، وبيانات مفيدة أخرى للمساعدة في توفير سياق إضافي. وهذا يمكن أن يساعدنا على تحديد أفضل طريقة للمضي قدما عندما نجد ذلك.

ما هو "إيجابية خاطئة"؟

المصطلح "إيجابية خاطئة" (بدلا من ذلك: "خطأ إيجابية خاطئة"؛ "انذار خاطئة"؛ الإنجليزية: false positive; false positive error; false alarm)، وصف ببساطة، بشكل عام، يستخدم عند اختبار حالة، للإشارة إلى نتائج هذا الاختبار، عندما تكون النتائج إيجابية (أي، تحديد حالة أن يكون "إيجابية"، أو "صحيح")، ولكن من المتوقع أن تكون (أو كان ينبغي أن يكون) سلبي (أي، الحالة، في الواقع، هو "سلبي"، أو "خاطئة"). "إيجابية خاطئة" ويمكن اعتبار التناظرية من "الذئب الباكي" (حيث لحالة يجري اختبارها هو ما إذا كان هناك ذئب بالقرب من القطيع، الحالة هو "خاطئة" في أنه لا يوجد الذئب بالقرب من القطيع، و الحالة يقال بأنها "إيجابية" بواسطة الراعي عن طريق الدعوة "الذئب، الذئب")، أو التناظرية من الفحص الطبي حيث المريض يتم تشخيص المرض، عندما تكون في واقع، ليس لديهم المرض.

بعض المصطلحات ذات الصلة هي "إيجابية صحيح"، "سلبي صحيح" و "سلبي خاطئة". "إيجابية صحيح" هو عندما تكون نتائج الاختبار والحالة الفعلية للحالة على حد سواء صحيح (أو "إيجابية")، و "سلبي صحيح" هو عندما تكون نتائج الاختبار والحالة الفعلية للحالة على حد سواء خاطئة (أو "سلبي")؛ "إيجابية صحيح" أو "سلبي صحيح" ويعتبر أن تكون "الاستدلال الصحيح". نقيض ل "إيجابية خاطئة" هو "سلبي خاطئة"؛ "سلبي خاطئة" هو عندما تكون النتائج سلبي (أي، تحديد حالة أن يكون "سلبي"، أو "خاطئة")، ولكن من المتوقع أن تكون (أو كان ينبغي أن يكون) إيجابية (أي، الحالة، في الواقع، هو "إيجابية"، أو "صحيح").

في سياق phpMussel، هذه المصطلحات تشير إلى التوقيعات phpMussel والملفات التي كانت منع. عندما phpMussel يمنع ملف نظرا لتوقيع سيئة، قديمة أو غير صحيحة، ولكن لا ينبغي أن تفعل ذلك، أو عندما يفعل ذلك لأسباب خاطئة، نشير إلى هذا الحدث باعتباره "إيجابية خاطئة". عندما phpMussel يفشل لمنع ملف التي كان ينبغي أن سدت، بسبب تهديدات غير متوقعة، التوقيعات المفقودة أو أوجه القصور توقيع، نشير إلى هذا الحدث باعتباره "افتقد" (هذا هو التناظرية من ا "سلبي خاطئة").

هذا يمكن تلخيصها حسب الجدول أدناه:

 
phpMussel لا ينبغي منع ملف
 
phpMussel يجب منع ملف
 
 
سلبي صحيح (الاستدلال الصحيح)
افتقد (التناظرية من سلبي خاطئة)
phpMussel لا يمنع ملف
 
إيجابية خاطئة
إيجابية صحيح (الاستدلال الصحيح)
phpMussel منع ملف

عدد المرات التي يتم تحديثها التوقيعات؟

أنه يختلف. نحن نحاول قدر الإمكان، ولكن نظرا لالتزامات أخرى، حياتنا اليومية، وعدم حصولهم على رواتبهم، تحديث الجدول الزمني الدقيق لا يمكن أن تكون مضمونة. ورحب المساعدة دائما.

لقد واجهت مشكلة! أنا لا أعرف ما يجب القيام به! الرجاء المساعدة!

  • تحقق مما إذا كنت تستخدم أحدث إصدار من البرنامج والتوقيع الملفات.
  • قراءة الوثائق. قد تكون هناك إجابات هناك.
  • قراءة صفحة المشكلات. قد تكون هناك إجابات هناك.
  • لا يوجد حتى الآن إجابات؟ يرجى طلب المساعدة عبر صفحة القضايا.

أريد استخدام phpMussel v3 مع نسخة PHP كبار السن من 7.2.0؛ يمكنك أن تساعد؟

لا. PHP >= 7.2.0 هو الحد الأدنى لمتطلبات phpMussel v3.

انظر أيضا: مخططات التوافق.

هل يمكنني استخدام تثبيت phpMussel واحد لحماية نطاقات متعددة؟

نعم.

أنا لا أريد أن تضيع الوقت مع تثبيت هذا أو ضمان أنه يعمل لموقع الويب الخاص بي؛ يمكنني دفع لك أن تفعل ذلك بالنسبة لي؟

ربما. وينظر في ذلك على أساس كل حالة على حدة. أخبرنا احتياجاتك وما تقدمه. سنخبرك بما إذا كنا نستطيع مساعدتك أم لا.

هل يمكنني توظيفك أو أي من مطوري هذا المشروع للعمل الخاص؟

راجع اإلجابة أعاله.

أنا بحاجة إلى تعديلات متخصصة، والتخصيصات، الخ؛ يمكنك أن تساعد؟

راجع اإلجابة أعاله.

أنا مطور، مصمم موقع، أو مبرمج. هل يمكنني قبول أو عرض العمل المتعلق بهذا المشروع؟

نعم. ترخيصنا لا يحظر هذا.

أريد أن أساهم في المشروع؛ هل يمكنني فعل هذا؟

نعم. المساهمة في المشروع هو موضع ترحيب كبير. يرجى الاطلاع على "CONTRIBUTING.md" لمزيد من المعلومات.

كيفية الوصول إلى تفاصيل محددة حول الملفات عند مسحها ضوئيا؟

يمكنك الوصول إلى تفاصيل محددة حول الملفات عند مسحها عن طريق تعيين مصفوفة لاستخدامها لهذا الغرض قبل توجيه phpMussel لمسحها.

في المثال أدناه، يتم تعيين $Foo لهذا الغرض. بعد مسح /file/path/...، سيتم تضمين معلومات مفصلة حول الملفات التي تحتوي عليها /file/path/... من قبل $Foo.

<?php
$Loader = new \phpMussel\Core\Loader();
$Scanner = new \phpMussel\Core\Scanner($Loader);

$Scanner->setScanDebugArray($Foo);

$Results = $Scanner->scan('/file/path/...');

var_dump($Foo);
المصفوفة عبارة عن مصفوفة متعددة الأبعاد تتكون من عناصر تمثل كل ملف يتم مسحه ضوئيا وعناصر فرعية تمثل تفاصيل هذه الملفات. وهذه العناصر الفرعية هي كما يلي:

  • Filename (string)
  • FromCache (bool)
  • Depth (int)
  • Size (int)
  • MD5 (string)
  • SHA1 (string)
  • SHA256 (string)
  • CRC32B (string)
  • 2CC (string)
  • 4CC (string)
  • ScanPhase (string)
  • Container (string)
  • † FileSwitch (string)
  • † Is_ELF (bool)
  • † Is_Graphics (bool)
  • † Is_HTML (bool)
  • † Is_Email (bool)
  • † Is_MachO (bool)
  • † Is_PDF (bool)
  • † Is_SWF (bool)
  • † Is_PE (bool)
  • † Is_Not_HTML (bool)
  • † Is_Not_PHP (bool)
  • ‡ NumOfSections (int)
  • ‡ PEFileDescription (string)
  • ‡ PEFileVersion (string)
  • ‡ PEProductName (string)
  • ‡ PEProductVersion (string)
  • ‡ PECopyright (string)
  • ‡ PEOriginalFilename (string)
  • ‡ PECompanyName (string)
  • Results (int)
  • Output (string)
† - لم يتم توفير نتائج مخبأة (تقدم فقط لنتائج مسح جديدة).

‡ - يتم توفيرها فقط عند مسح ملفات PE.

اختياريا، يمكن تدمير هذه المصفوفة باستخدام ما يلي:

$Scanner->destroyScanDebugArray($Foo);

القوائم السوداء – القوائم البيضاء – القائمة الرمادية – ما هي، وكيف أستخدمها؟

تعبر المصطلحات معان مختلفة في سياقات مختلفة. في phpMussel، هناك ثلاث سياقات حيث يتم استخدام هذه المصطلحات: استجابة حجم الملف، استجابة نوع الملف، والتوقيع القائمة الرمادية.

من أجل تحقيق نتيجة مرغوبة بأقل تكلفة ممكنة للمعالجة، هناك بعض الأشياء البسيطة التي يمكن لـ phpMussel التحقق منها قبل مسح الملفات، مثل حجم الملف والاسم والامتداد. فمثلا؛ إذا كان الملف كبيرًا جدًا، أو إذا كانت إضافته تشير إلى نوع من الملفات لا نريد السماح به على مواقعنا الإلكترونية على أي حال، فيمكننا الإبلاغ عن الملف على الفور، ولا تحتاج إلى فحصه.

استجابة حجم الملف هي الطريقة التي يستجيب بها phpMussel عندما يتجاوز الملف حدًا معينًا. على الرغم من عدم وجود قوائم فعلية، يمكن اعتبار الملف في هذه القوائم بناءً على حجمه. يوجد خياران منفصلان للتوصيف لتحديد الحد والاستجابة المرغوبة على التوالي.

استجابة نوع الملف هي الطريقة التي يستجيب بها phpMussel لتمديد الملف. توجد ثلاثة خيارات تكوين منفصلة لتحديد الإضافات التي يجب أن تكون على أي القوائم. يمكن اعتبار الملف مدرجًا بشكل فعال إذا كانت إضافته مطابقة لأي من الإضافات المحددة على التوالي.

في هذين السياقين، يعني الوجود في القائمة البيضاء أنه لا يجب فحصه أو وضع علامة عليه؛ في القائمة السوداء يعني أنه يجب وضع علامة عليها (وبالتالي لا تحتاج لمسحها ضوئيًا)؛ وكونه على الشبح الرمزي يعني أن هناك حاجة إلى مزيد من التحليل لتحديد ما إذا كان ينبغي لنا وضع علامة عليه (أي، يجب فحصها).

القائمة الرمادية هو قائمة بالتوقيعات التي يجب تجاهلها (هذا يذكر لفترة وجيزة في وقت سابق من الوثائق). عندما يتم تشغيل التوقيع على توقيع القائمة الرمادية، يستمر phpMussel بالعمل من خلال توقيعاته ولا يتخذ أي إجراء معين فيما يتعلق بالتوقيع. لا توجد قائمة سوداء مميزة، لأن السلوك الضمني هو سلوك طبيعي للتوقيعات المشغلة على أي حال، وليس هناك قائمة بيضاء مميزة، لأن السلوك الضمني لن يكون منطقيًا حقًا بالنظر إلى كيفية عمل phpMussel العادي والإمكانيات المتوفرة لديه بالفعل.

يكون توقيع القائمة الرمادية مفيدًا إذا كنت بحاجة إلى حل المشكلات التي يسببها توقيع معين دون تعطيل أو إلغاء تثبيت ملف التوقيع بأكمله.

ما هو "PDO DSN"؟ كيف يمكنني استخدام PDO مع phpMussel؟

"PDO" هو اختصار لـ "PHP Data Objects" (كائنات بيانات PHP). يوفر واجهة لـ PHP لتكون قادرة على الاتصال ببعض أنظمة قواعد البيانات التي يشيع استخدامها في مختلف تطبيقات PHP.

"DSN" هو اختصار لـ "data source name" (اسم مصدر البيانات). يصف "PDO DSN" لـ PDO كيف يجب أن تتصل بقاعدة بيانات.

يوفر phpMussel خيار استخدام PDO لأغراض التخزين المؤقت. من أجل هذا للعمل بشكل صحيح، ستحتاج إلى تكوين phpMussel وفقًا لذلك، وتمكين PDO، وإنشاء قاعدة بيانات جديدة لاستخدام لphpMussel (إذا لم يكن لديك بالفعل قاعدة بيانات لاستخدام لphpMussel)، وإنشاء جدول جديد في قاعدة البيانات الخاصة بك بما يتوافق مع الهيكل الموصوف أدناه.

عندما يكون اتصال قاعدة البيانات بنجاح، لكن الجدول الضروري غير موجود، فسيحاول إنشاؤه تلقائيًا. ومع ذلك، لم يتم اختبار هذا السلوك على نطاق واسع ولا يمكن ضمان النجاح.

هذا، بالطبع، ينطبق فقط إذا كنت تريد بالفعل أن تستخدم PDO لphpMussel. إذا كنت سعيدًا بدرجة كافية لاستخدام التخزين المؤقت للملفات (وفقًا للتهيئة الافتراضية لـ phpMussel)، أو أي من خيارات التخزين المؤقت الأخرى المتوفرة، فلن تحتاج إلى متاعب نفسك في إعداد قواعد البيانات والجداول.

يستخدم الهيكل الموصوف أدناه "phpmussel" كاسم قاعدة البيانات الخاصة به، ولكن يمكنك استخدام أي اسم تريده لقاعدة البيانات الخاصة بك، طالما يتم نسخ نفس الاسم في تكوين DSN الخاص بك.

╔══════════════════════════════════════════════╗
║ DATABASE "phpmussel"                         ║
║ │╔═══════════════════════════════════════════╩═════╗
║ └╫─TABLE "Cache" (UTF-8)                           ║
║  ╠═╪═FIELD══CHARSET═DATATYPE═════KEY══NULL═DEFAULT═╣
║  ║ ├─"Key"──UTF-8───VARCHAR(128)─PRI──×────×       ║
║  ║ ├─"Data"─UTF-8───TEXT─────────×────×────×       ║
╚══╣ └─"Time"─×───────INT(>=10)────×────×────×       ║
   ╚═════════════════════════════════════════════════╝
يجب تكوين توجيه التكوين pdo_dsn الخاص بـ phpMussel كما هو موضح أدناه.

اعتمادًا على برنامج تشغيل قاعدة البيانات المستخدم...
├─4d (تحذير: تجريبي، لم يتم اختباره، غير مستحسن)
│ │
│ │         ╔═══════╗
│ └─4D:host=localhost;charset=UTF-8
│           ╚╤══════╝
│            └المضيف للاتصال مع للعثور على قاعدة البيانات
├─cubrid
│ │
│ │             ╔═══════╗      ╔═══╗        ╔═════╗
│ └─cubrid:host=localhost;port=33000;dbname=example
│               ╚╤══════╝      ╚╤══╝        ╚╤════╝
│                │              │            └اسم قاعدة البيانات المراد استخدامها
│                │              │
│                │              └رقم المنفذ للاتصال بالمضيف مع
│                │
│                └المضيف للاتصال مع للعثور على قاعدة البيانات
├─dblib
│ │
│ │ ╔═══╗      ╔═══════╗        ╔═════╗
│ └─dblib:host=localhost;dbname=example
│   ╚╤══╝      ╚╤══════╝        ╚╤════╝
│    │          │                └اسم قاعدة البيانات المراد استخدامها
│    │          │
│    │          └المضيف للاتصال مع للعثور على قاعدة البيانات
│    │
│    └"mssql", "sybase", "dblib": القيم الممكنة
├─firebird
│ │
│ │                 ╔═══════════════════╗
│ └─firebird:dbname=/path/to/database.fdb
│                   ╚╤══════════════════╝
│                    ├يمكن أن يكون الطريق إلى ملف قاعدة البيانات المحلية
│                    │
│                    ├يمكن الاتصال مع المضيف ورقم المنفذ
│                    │
│                    └يجب عليك الرجوع إلى وثائق Firebird إذا كنت تريد استخدام هذا
├─ibm
│ │
│ │         ╔═════╗
│ └─ibm:DSN=example
│           ╚╤════╝
│            └التي فهرستها قاعدة البيانات للتواصل مع
├─informix
│ │
│ │              ╔═════╗
│ └─informix:DSN=example
│                ╚╤════╝
│                 └التي فهرستها قاعدة البيانات للتواصل مع
├─mysql (الأكثر الموصى بها)
│ │
│ │              ╔═════╗      ╔═══════╗      ╔══╗
│ └─mysql:dbname=example;host=localhost;port=3306
│                ╚╤════╝      ╚╤══════╝      ╚╤═╝
│                 │            │              └رقم المنفذ للاتصال بالمضيف مع
│                 │            │
│                 │            └المضيف للاتصال مع للعثور على قاعدة البيانات
│                 │
│                 └اسم قاعدة البيانات المراد استخدامها
├─oci
│ │
│ │            ╔═════╗
│ └─oci:dbname=example
│              ╚╤════╝
│               ├يمكن الرجوع إلى قاعدة البيانات المفهرسة المحددة
│               │
│               ├يمكن الاتصال مع المضيف ورقم المنفذ
│               │
│               └يجب عليك الرجوع إلى وثائق Oracle إذا كنت تريد استخدام هذا
├─odbc
│ │
│ │      ╔═════╗
│ └─odbc:example
│        ╚╤════╝
│         ├يمكن الرجوع إلى قاعدة البيانات المفهرسة المحددة
│         │
│         ├يمكن الاتصال مع المضيف ورقم المنفذ
│         │
│         └└يجب عليك الرجوع إلى وثائق ODBC/DB2 إذا كنت تريد استخدام هذا
├─pgsql
│ │
│ │            ╔═══════╗      ╔══╗        ╔═════╗
│ └─pgsql:host=localhost;port=5432;dbname=example
│              ╚╤══════╝      ╚╤═╝        ╚╤════╝
│               │              │           └اسم قاعدة البيانات المراد استخدامها
│               │              │
│               │              └رقم المنفذ للاتصال بالمضيف مع
│               │
│               └المضيف للاتصال مع للعثور على قاعدة البيانات
├─sqlite
│ │
│ │        ╔════════╗
│ └─sqlite:example.db
│          ╚╤═══════╝
│           └المسار إلى ملف قاعدة البيانات المحلية للاستخدام
└─sqlsrv
  │
  │               ╔═══════╗ ╔══╗          ╔═════╗
  └─sqlsrv:Server=localhost,1521;Database=example
                  ╚╤══════╝ ╚╤═╝          ╚╤════╝
                   │         │             └اسم قاعدة البيانات المراد استخدامها
                   │         │
                   │         └رقم المنفذ للاتصال بالمضيف مع
                   │
                   └المضيف للاتصال مع للعثور على قاعدة البيانات
إذا لم تكن متأكدًا مما يمكنك استخدامه في جزء معين من DSN، فحاول أولاً معرفة ما إذا كان يعمل كما هو، دون تغيير أي شيء.

لاحظ أن pdo_username و pdo_password يجب أن يكونا نفس اسم المستخدم وكلمة المرور اللذين اخترتهما لقاعدة بياناتك.

تحميلاتي غير متزامنة (على سبيل المثال، يستخدم ajax، ajaj، json، إلخ). لا أرى أي رسالة أو تحذير خاص عند حظر التحميل. ماذا يحدث هنا؟

هذا امر طبيعي. يتم تقديم صفحة phpMussel القياسية "رفض تحميل" ك HTML، والتي يجب أن تكون كافية للطلبات المتزامنة المعتادة، ولكن ربما لن يكون ذلك كافيًا إذا كانت وسيلة التحميل لديك تتوقع شيئًا آخر. إذا كانت عمليات التحميل غير متزامنة، أو تحتاج إلى تقديمها بشكل غير متزامن، هناك بعض الأشياء التي يمكنك تجربتها حتى يتمكن phpMussel من تلبية احتياجات وظيفة التحميل.

  • ١. إنشاء قالب إخراج مخصص لخدمة شيء آخر غير HTML.
  • ٢. إنشاء مكون إضافي مخصص لتجاوز صفحة "رفض تحميل" القياسية تمامًا واطلب من معالج التحميل فعل شيء آخر عندما يتم حظر التحميل (هناك بعض روابط المكوّنات الإضافية التي يوفرها معالج التحميل والتي قد تكون مفيدة لهذا الغرض).
  • ٣. تعطيل معالج التحميل بالكامل وبدلاً من ذلك فقط اتصل بـ phpMussel API من داخل وظيفة التحميل الخاصة بك.

هل يستطيع phpMussel اكتشاف EICAR؟

نعم. يتم تضمين توقيع للكشف عن EICAR في "ملف توقيع التعبيرات العادية القياسية phpMussel" (phpmussel_regex.db). طالما تم تثبيت ملف التوقيع هذا وتنشيطه، يجب أن يكون phpMussel قادرًا على اكتشاف EICAR. نظرًا لأن قاعدة بيانات ClamAV تتضمن أيضًا العديد من التوقيعات خصيصًا لاكتشاف EICAR، يمكن لـ ClamAV اكتشاف EICAR بسهولة، ولكن نظرًا لأن phpMussel لا يستخدم سوى مجموعة فرعية صغيرة من إجمالي التوقيعات التي يوفرها ClamAV، فقد لا تكون كافية في حد ذاتها لـ phpMussel لاكتشاف EICAR. قد تعتمد القدرة على اكتشافه أيضًا على التكوين الدقيق الخاص بك.


٩. المعلومات القانونية

٩.٠ مقدمة القسم

يصف هذا القسم من الوثائق الاعتبارات القانونية الممكنة فيما يتعلق باستخدام الحزمة وتنفيذها، ويوفر بعض المعلومات الأساسية ذات الصلة. قد يكون هذا مهمًا لبعض المستخدمين كوسيلة لضمان التوافق مع أي متطلبات قانونية قد تكون موجودة في البلدان التي يعملون فيها، وقد يحتاج بعض المستخدمين إلى تعديل سياسات موقع الويب الخاصة بهم وفقًا لهذه المعلومات.

أولا، يرجى ندرك أنني (مؤلف حزمة) لست محام، وليس أي نوع من المهنيين القانونيين المؤهلين. لذلك، لست مؤهلاً قانونًا لتقديم المشورة القانونية. أيضا، في بعض الحالات، قد تختلف المتطلبات القانونية بين الدول والاختصاصات المختلفة، وهذه المتطلبات القانونية المتفاوتة قد تكون متناقضة في بعض الأحيان (على سبيل المثال، الدول التي تفضل "حقوق الخصوصية" و "الحق في أن تنسى"، مقارنة بالبلدان التي تفضل "الاحتفاظ بالبيانات"). ضع في اعتبارك أيضًا أن الوصول إلى الحزمة لا يقتصر على بلدان أو ولايات قضائية محددة، وبالتالي، فإن مستخدمي الحزمة من المحتمل أن يكونوا متنوعين جغرافيًا. بالنظر إلى هذه النقاط، فأنا لست في وضع يسمح لي بالإشارة إلى ما يعنيه أن يكون "متوافقة مع القانون" مع الجميع. ومع ذلك، آمل أن تساعدك هذه المعلومات على أن تقرر بنفسك ما يجب عليك القيام به للبقاء ملتزمين قانونًا في سياق الحزمة. إذا كانت لديك أي شكوك بخصوص هذه المعلومات، أو إذا كنت بحاجة إلى مساعدة ومشورة إضافية من منظور قانوني، فإنني أوصيك باستشارة متخصص قانوني مؤهل.

٩.١ المسؤولية

كما هو مذكور بالفعل من قبل ترخيص الحزمة، يتم توفير الحزمة دون أي ضمان. وهذا يشمل (على سبيل المثال لا الحصر) كل نطاق المسؤولية. يتم توفير الحزمة لك لراحتك، على أمل أن تكون مفيدة، وأنها سوف توفر بعض الفائدة بالنسبة لك. ومع ذلك، سواء كنت تستخدم أو تنفذ الحزمة، فذلك هو خيارك. لا تضطر إلى استخدام الحزمة أو تنفيذها، ولكن عندما تقوم بذلك، فأنت مسؤول عن هذا القرار. لا أنا ولا أي مساهم آخر في الحزمة مسؤول قانونيًا عن عواقب القرارات التي تتخذها، بصرف النظر عما إذا كانت مباشرة أو غير مباشرة أو ضمنية أو غير ذلك.

٩.٢ الأطراف الثالثة

اعتمادا على التكوين الدقيق والتنفيذ، قد تتواصل الحزمة وتتبادل المعلومات مع أطراف ثالثة في بعض الحالات. في بعض السياقات، من خلال بعض السلطات القضائية، يمكن تعريف ذلك على أنه "معلومات تعريف شخصية".

إن كيفية استخدام هذه المعلومات من قِبل هذه الجهات الخارجية تخضع لسياساتها، وهي خارج نطاق هذه الوثائق. ومع ذلك، في جميع هذه الحالات، يمكن تعطيل مشاركة المعلومات. في جميع هذه الحالات، إذا اخترت تمكينها، تقع على عاتقك مسؤولية البحث عن أي مخاوف قد تكون لديك بشأن الخصوصية والأمان واستخدام هذه المعلومات من قِبل هذه الأطراف الثالثة. إذا وجدت أي شكوك، أو إذا كنت غير راضي عن سلوك هذه الأطراف الثالثة، قد يكون من الأفضل تعطيل كل مشاركة المعلومات مع هذه الأطراف الثالثة.

لغرض الشفافية، يتم وصف نوع المعلومات المشتركة أدناه.

٩.٢.١ ماسح URL

قد تتم مشاركة عناوين URL الموجودة داخل عمليات تحميل الملفات مع براجهة برمجة تطبيقات التصفح الآمن Google، بناءً على كيفية تهيئة الحزمة. تتطلب واجهة برمجة تطبيقات التصفح الآمن من Google مفاتيح API لكي تعمل بشكل صحيح، وبالتالي يتم تعطيلها افتراضيًا.

خيارات التكوين ذات الصلة:
  • google_api_key <- urlscanner
٩.٢.٢ VIRUS TOTAL

عندما يقوم phpMussel بمسح تحميل الملف، قد تتم مشاركة تجزئة تلك الملفات مع Virus Total API، بناءً على كيفية تكوين الحزمة. هناك خطط لتتمكن من مشاركة ملفات كاملة في وقت ما في المستقبل أيضًا، ولكن هذه الميزة غير مدعومة بواسطة الحزمة في الوقت الحالي. مطلوب مفتاح API من أجل استخدام هذه الميزة.

يمكن أيضًا مشاركة المعلومات (بما في ذلك الملفات والبيانات الوصفية ذات الصلة للملف) التي تم مشاركتها مع Virus Total مع شركائها والشركات التابعة لها ومختلف الشركات الأخرى لأغراض البحث. يتم وصف ذلك بمزيد من التفاصيل من خلال سياسة الخصوصية الخاصة بهم.

خيارات التكوين ذات الصلة:
  • vt_public_api_key <- virustotal

٩.٣ تسجيل

التسجيل هو جزء مهم من phpMussel لعدد من الأسباب. قد يكون من الصعب تشخيص وحل إيجابيات خاطئة عندما لا يتم تسجيل أحداث الحظر التي تسبب لهم. بدون تسجيل، قد يكون من الصعب تشخيص الإيجابيات الكاذبة، للتأكد من أداء phpMussel بشكل جيد، وقد يكون من الصعب تحديد مواطن ضعفها، وما هي التغييرات التي قد تكون مطلوبة لتكوينها أو توقيعاتها، لكي تستمر في العمل على النحو المنشود. بغض النظر، ربما لا يريد الجميع التسجيل، لذلك يبقى اختياريًا تمامًا. في phpMussel، يتم تعطيل التسجيل افتراضيًا. لتمكينه، يجب تكوين phpMussel وفقًا لذلك.

بالإضافة إلى، ما إذا كان تخزين هذا النوع من البياناتمسموحًا به قانونًا، وإلى الحد المسموح به قانونًا (ذلك بالقول، أنواع المعلومات التي يمكن تسجيلها، إلى متى، وتحت أي ظروف)، قد تختلف، وهذا يتوقف على الاختصاص واعتمادًا على سياق التنفيذ (فمثلا، سواء كنت تعمل كفرد أو مؤسسة، وعما إذا كان ذلك على أساس تجاري أو غير تجاري). لذلك قد يكون من المفيد لك قراءة هذا القسم بعناية.

هناك العديد من أنواع المعلومات المختلفة التي يمكن تسجيلها، لأسباب مختلفة.

٩.٣.٠ سجلات الفحص

عند تمكينه في تكوين الحزمة، يحتفظ phpMussel بسجلات الملفات التي يقوم بمسحها. يتوفر هذا النوع من التسجيل بتنسيقين مختلفين:
  • السجلات التي يمكن قراءتها من قبل البشر.
  • سجلات مسلسلة.
عادةً ما تبدو الإدخالات إلى ملف السجل البشري المقروء شيئًا مثل هذا (كمثال):

Sun, 19 Jul 2020 13:33:31 +0800 بدأت.
→ فحص "ascii_standard_testfile.txt".
─→ الكشف phpMussel-Testfile.ASCII.Standard (ascii_standard_testfile.txt)!
Sun, 19 Jul 2020 13:33:31 +0800 انتهى.
عادةً ما يتضمن إدخال سجل الفحص المعلومات التالية:
  • تاريخ ووقت فحص الملف.
  • اسم الملف الممسوح ضوئيًا.
  • ما تم اكتشافه في الملف (إذا تم اكتشاف أي شيء).
خيارات التكوين ذات الصلة:
  • scan_log <- general
  • scan_log_serialized <- general
عندما يتم ترك هذه التوجيهات فارغة، سيظل هذا النوع من التسجيل معطلاً.

٩.٣.١ سجل التحميلات

عند تمكينه في تكوين الحزمة، phpMussel يحتفظ بسجلات التحميلات التي تم حظرها.

إدخال سجل مثال:

التاريخ: Sun, 19 Jul 2020 13:33:31 +0800
عنوان IP: 127.0.0.x
== نتائج المسح (لماذا تم الإبلاغ عنها) ==
الكشف phpMussel-Testfile.ASCII.Standard (ascii_standard_testfile.txt)!
== إعادة بناء التواقيع التجزئة ==
dcacac499064454218823fbabff7e09b5b011c0c877ee6f215f35bffb195b6e9:654:ascii_standard_testfile.txt
الحجر الصحي بأنه "1595142388-2e017ea9ac1478e45dc15794a1fc18c0.qfu".
عادةً ما تتضمن إدخالات السجل هذه المعلومات التالية:
  • التاريخ والوقت الذي تم حظر التحميل فيه.
  • عنوان IP الذي نشأ فيه التحميل.
  • سبب حظر الملف (ما تم اكتشافه).
  • اسم الملف المحظور.
  • تم حظر المجموع الاختباري وحجم الملف.
  • ما إذا كان الملف قد تم عزله، وتحت أي اسم داخلي.
خيارات التكوين ذات الصلة:
  • uploads_log <- web
٩.٣.٢ سجلات الواجهة الأمامية

هذا التسجيل يتصل محاولات تسجيل الدخول الأمامية. يحدث فقط عندما يحاول مستخدم تسجيل الدخول إلى الواجهة الأمامية، وفقط عندما يتم تمكين الوصول للجهة الأمامية.

يحتوي إدخال سجل الواجهة الأمامية على عنوان IP الخاص بالمستخدم الذي يحاول تسجيل الدخول وتاريخ ووقت حدوث المحاولة ونتائج المحاولة (تم تسجيل الدخول بنجاح، أو فشل في تسجيل الدخول). يبدو عادة مثل هذا (كمثال):

x.x.x.x - Day, dd Mon 20xx hh:ii:ss +0000 - "admin" - حاليا على.
خيارات التكوين ذات الصلة:
  • frontend_log <- general
٩.٣.٣ دوران السجل

قد ترغب في تطهير السجلات بعد فترة من الوقت، أو قد تكون مطلوبة للقيام بذلك بموجب القانون (أي أن مقدار الوقت المسموح به قانونًا لك للاحتفاظ بالسجلات قد يكون محدودًا بموجب القانون). يمكنك تحقيق ذلك عن طريق تضمين علامات التاريخ/الوقت في أسماء ملفات السجل الخاصة بك كما هو محدد بواسطة تكوين الحزمة الخاصة بك (على سبيل المثال، {yyyy}-{mm}-{dd}.log)، ثم تمكين دوران السجل (يسمح لك تدوير السجل بتنفيذ بعض الإجراءات على ملفات السجل عندما يتم تجاوز الحدود المحددة).

فمثلا: إذا كان من الضروري قانونًا حذف السجلات بعد 30 يومًا، يمكنني تحديد {dd}.log في أسماء ملفات السجل الخاصة بي ({dd} يمثل عدد الأيام)، قم بتعيين قيمة log_rotation_limit إلى 30، وقم بتعيين قيمة log_rotation_action إلى Delete.

على العكس من ذلك، إذا كنت مطالبًا بالاحتفاظ بالسجلات لفترة زمنية طويلة، فيمكنك تعطيل تدوير السجل، أو يمكنك تعيين قيمة log_rotation_action إلى Archive، لضغط ملفات السجل، وبالتالي تقليل إجمالي مساحة القرص التي يشغلونها.

خيارات التكوين ذات الصلة:
  • log_rotation_limit <- general
  • log_rotation_action <- general
٩.٣.٤ سجل اقتطاع

إذا أردت، يمكنك اقتطاع ملفات السجل الفردية عندما تتجاوز حجمًا معينًا.

خيارات التكوين ذات الصلة:
  • truncate <- general
٩.٣.٥ عنوان IP PSEUDONYMISATION

أولاً، إذا لم تكن على دراية بهذا المصطلح، "pseudonymisation" يشير إلى معالجة البيانات الشخصية على هذا النحو بحيث لا يمكن تحديدها لأي موضوع بيانات محدد بعد الآن بدون معلومات إضافية، وشريطة أن يتم الاحتفاظ بهذه المعلومات التكميلية بشكل منفصل وتخضع للتدابير التقنية والتنظيمية لضمان عدم إمكانية تحديد البيانات الشخصية لأي شخص طبيعي.

يمكن أن تساعد الموارد التالية في شرحها بمزيد من التفاصيل:
في بعض الحالات، قد يُطلب منك قانونًا تنفيذ "anonymisation" أو "pseudonymisation" لأي معلومات PII تم جمعها أو معالجتها أو تخزينها. على الرغم من وجود هذا المفهوم منذ بعض الوقت، GDPR/DSGVO يذكر بشكل ملحوظ ويشجع "pseudonymisation".

إذا أردت، يمكن لـ phpMussel القيام بذلك لعناوين IP عند الكتابة إلى السجلات. عند الكتابة إلى السجلات، سيتم تمثيل الثمانية النهائية لعناوين IPv4 وكل شيء بعد الجزء الثاني من عناوين IPv6 بواسطة "x" (تقريب عناوين IPv4 إلى العنوان الأولي للشبكة الفرعية الـ 24 التي تدخلها، وعناوين IPv6 إلى العنوان الأولي للشبكة الفرعية 32 التي تدخلها).

خيارات التكوين ذات الصلة:
  • pseudonymise_ip_addresses <- legal
٩.٣.٦ الإحصاء

phpMussel قادر بشكل اختياري على تتبع الإحصائيات مثل العدد الإجمالي للملفات التي تم مسحها وحظرها منذ وقت معين. يتم تعطيل هذه الميزة بشكل افتراضي، ولكن يمكن تمكينها من خلال تهيئة الحزمة. لا يجب اعتبار نوع المعلومات التي يتم تتبعها كمعلومات تحديد الهوية الشخصية.

خيارات التكوين ذات الصلة:
  • statistics <- general
٩.٣.٧ التشفير

لا يقوم phpMussel بتشفير ذاكرة التخزين المؤقت أو أي معلومات سجل. قد يتم إدخال تشفير ذاكرة التخزين المؤقت والسجلات في المستقبل، ولكن لا توجد خطط محددة لها حاليًا. إذا كنت قلقًا بشأن حصول أطراف ثالثة غير مصرح لها على إمكانية الوصول إلى أجزاء من phpMussel قد تحتوي على معلومات تحديد الهوية الشخصية أو معلومات حساسة مثل ذاكرة التخزين المؤقت أو السجلات، أوصي بعدم تثبيت phpMussel في مكان يمكن الوصول إليه بشكل عام (على سبيل المثال، مجلد تثبيت phpMussel خارج الدليل public_html القياسي أو ما يعادله، متاح لمعظم خوادم الويب القياسية) والتأكد من فرض الأذونات المقيدة بشكل مناسب لدليل التثبيت. إذا لم يكن ذلك كافيًا لمعالجة مخاوفك، فقم بتكوين phpMussel بحيث لا يتم جمع أنواع المعلومات التي تسبب مخاوفك أو تسجيلها في المقام الأول (مثل، عن طريق تعطيل التسجيل).

٩.٤ ملف تعريف ارتباط

عندما يسجل المستخدم بنجاح في الواجهة الأمامية، يعين phpMussel ملف تعريف ارتباط حتى يتمكن من تذكر المستخدم للطلبات اللاحقة (أي، يتم استخدام ملفات تعريف الارتباط لمصادقة المستخدم على جلسة تسجيل الدخول). في صفحة تسجيل الدخول، يتم عرض تحذير ملف تعريف ارتباط بشكل بارز، ويحذر المستخدم من أنه سيتم تعيين ملف تعريف ارتباط إذا شارك في الإجراء ذي الصلة. لا يتم تعيين ملفات تعريف الارتباط في أي نقاط أخرى في مصدر التعليمات البرمجية.

٩.٥ التسويق والإعلان

لا تجمع phpMussel أو تعالج أي معلومات لأغراض التسويق أو الإعلانات، ولا تبيع أو تحقق أرباحًا من أي معلومات تم جمعها أو تسجيلها. phpMussel ليست مؤسسة تجارية، ولا ترتبط بأي مصالح تجارية، لذا فإن القيام بهذه الأشياء لن يكون له أي معنى. كان هذا هو الحال منذ بداية المشروع، وما زالت الحالة اليوم. بالإضافة إلى ذلك، فإن القيام بهذه الأشياء سيؤدي إلى نتائج عكسية للمشروع والغرض المقصود من المشروع ككل، وطالما استمر في الحفاظ على المشروع، لن يحدث أبداً.

٩.٦ سياسة الخصوصية

في بعض الحالات، قد يُطلب منك قانونًا عرض رابط لسياسة الخصوصية بوضوح في جميع صفحات وأقسام موقعك. قد يكون هذا أمرًا مهمًا كوسيلة لضمان معرفة المستخدمين جيدًا بممارسات الخصوصية الدقيقة، وأنواع معلومات تحديد الهوية الشخصية التي تجمعها، وكيفية تنوي استخدامها. لتتمكن من تضمين مثل هذا الارتباط في صفحة "رفض تحميل" الخاصة بـ phpMussel، يتم توفير توجيه تكوين لتحديد عنوان URL لسياسة الخصوصية الخاصة بك.

خيارات التكوين ذات الصلة:
  • privacy_policy <- legal

٩.٧ GDPR/DSGVO

يعد اللائحة العامة لحماية البيانات (GDPR) لائحة خاصة بالاتحاد الأوروبي، والتي تدخل حيز التنفيذ اعتبارًا من 25 مايو 2018. الهدف الأساسي من التنظيم هو إعطاء السيطرة على المواطنين والمقيمين في الاتحاد الأوروبي فيما يتعلق ببياناتهم الشخصية، وتوحيد الأنظمة داخل الاتحاد الأوروبي فيما يتعلق بالخصوصية والبيانات الشخصية.

تحتوي اللائحة على أحكام محددة تتعلق بمعالجة "معلومات التعريف الشخصية" لأي "موضوعات بيانات" تابعة للاتحاد الأوروبي (أي شخص طبيعي محدد أو قابل للتحديد). من أجل الامتثال للأنظمة، "الشركات" (كما هو محدد في اللائحة)، وكذلك أي أنظمة وعمليات ذات صلة، يجب تنفيذ "الخصوصية حسب التصميم" بشكل افتراضي، يجب استخدام أعلى إعدادات الخصوصية الممكنة، يجب تنفيذ الضمانات اللازمة لأية معلومات مخزنة أو معالجتها (بما في ذلك، على سبيل المثال لا الحصر، تنفيذ "pseudonymisation" أو "anonymisation" الكامل للبيانات)، يجب أن يعلن بوضوح وبشكل لا لبس فيه أنواع البيانات التي يجمعونها، كيفية معالجتها، لأي أسباب، إلى متى تحتفظ بها، وإذا شاركوا هذه البيانات مع أطراف ثالثة، وأنواع البيانات المشتركة مع أطراف ثالثة، وكيف، ولماذا، وما إلى ذلك.

لا يجوز معالجة البيانات ما لم يكن هناك أساس قانوني للقيام بذلك، كما هو محدد في اللائحة. وبشكل عام، يعني هذا أنه من أجل معالجة بيانات موضوع البيانات على أساس قانوني، يجب أن يتم ذلك وفقًا لالتزامات قانونية، أو يتم فقط بعد الحصول على موافقة واضحة ومطلعة بشكل لا لبس فيه من موضوع البيانات.

قد تتطور جوانب التنظيم في الوقت المناسب، ومن أجل تجنب نشر المعلومات القديمة، قد يكون من الأفضل معرفة التنظيم من مصدر موثوق، بدلاً من مجرد تضمين المعلومات ذات الصلة هنا في وثائق الحزمة (مثل المعلومات المضمنة قد تصبح في نهاية المطاف عفا عليها الزمن مع تطور التنظيم).

بعض الموارد الموصى بها لتعلم المزيد من المعلومات:

آخر تحديث: ١ يوليو ٢٠٢٤ (٢٠٢٤.٠٧.٠١).