Skip to content

Commit d8242d4

Browse files
committed
Progress towards v3 (~3.4).
1 parent 5696229 commit d8242d4

16 files changed

+1265
-134
lines changed

readme.ar.md

Lines changed: 102 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -187,7 +187,7 @@ $Web = new \phpMussel\Web\Web($Loader, $Scanner);
187187
$Web->scan();
188188
```
189189

190-
<div dir="rtl">بشكل اختياري ، يمكن أن يحاول phpMussel إصلاح أسماء التحميلات في حالة وجود خطأ ما ، إذا كنت ترغب في:<br /><br /></div>
190+
<div dir="rtl">بشكل اختياري، يمكن أن يحاول phpMussel إصلاح أسماء التحميلات في حالة وجود خطأ ما، إذا كنت ترغب في:<br /><br /></div>
191191

192192
```PHP
193193
$Web->demojibakefier();
@@ -303,16 +303,93 @@ unset($Web, $FrontEnd, $Scanner, $Loader);
303303

304304
#### <div dir="rtl">٣.٧ API الماسح</div>
305305

306+
<div dir="rtl">يمكنك أيضًا استخدام واجهة برمجة تطبيقات الماسح الضوئي phpMussel في البرامج النصية والبرامج النصية الأخرى، إذا كنت ترغب في ذلك.<br /><br /></div>
307+
308+
<div dir="rtl">كمثال كامل:<br /><br /></div>
309+
310+
```PHP
311+
// Path to vendor directory.
312+
$Vendor = __DIR__ . DIRECTORY_SEPARATOR . 'vendor';
313+
314+
// Composer's autoloader.
315+
require $Vendor . DIRECTORY_SEPARATOR . 'autoload.php';
316+
317+
// Location of the test files.
318+
$Samples = sprintf($Vendor . '%1$sphpmussel%1$score%1$stests%1$s_support%1$ssamples', DIRECTORY_SEPARATOR);
319+
320+
$Loader = new \phpMussel\Core\Loader();
321+
$Scanner = new \phpMussel\Core\Scanner($Loader);
322+
$Loader->Events->addHandler('sendMail', new \phpMussel\PHPMailer\Linker($Loader));
323+
324+
// Execute the scan.
325+
$Results = $Scanner->scan($Samples);
326+
327+
// Cleanup.
328+
unset($Scanner, $Loader);
329+
330+
var_dump($Results);
331+
```
332+
333+
<div dir="rtl">الجزء المهم الذي يجب ملاحظته من هذا المثال هو طريقة <code dir="ltr">scan()</code>. تقبل الطريقة <code dir="ltr">scan()</code> معلمتين:<br /><br /></div>
334+
335+
```PHP
336+
public function scan(mixed $Files, int $Format = 0): mixed
337+
```
338+
339+
<div dir="rtl">يمكن أن تكون المعلمة الأولى عبارة عن سلسلة أو صفيف، وتخبر الماسح الضوئي بما يجب فحصه. يمكن أن تكون سلسلة تشير إلى ملف أو دليل معين، أو صفيف من هذه السلاسل لتحديد ملفات/أدلة متعددة.<br /><br /></div>
340+
341+
<div dir="rtl">عندما تكون كسلسلة، يجب أن تشير إلى مكان العثور على البيانات. عندما تكون صفيفًا، يجب أن تشير مفاتيح الصفيف إلى الأسماء الأصلية للعناصر المراد مسحها ضوئيًا، ويجب أن تشير القيم إلى مكان العثور على البيانات.<br /><br /></div>
342+
343+
<div dir="rtl">المعلمة الثانية هي عدد صحيح، وتخبر الماسح الضوئي بكيفية إرجاع نتائج المسح.<br /><br /></div>
344+
345+
<div dir="rtl">حدد 1 لإرجاع نتائج المسح كمصفوفة لكل عنصر تم مسحه ضوئيًا كأعداد صحيحة.<br /><br /></div>
346+
347+
<div dir="rtl">هذه الأعداد الصحيحة لها المعاني التالية:<br /><br /></div>
348+
306349
النتائج | وصف
307350
--:|--:
308-
-5 | Indicates that the scan failed to complete for other reasons.
309-
-4 | Indicates that data couldn't be scanned due to encryption.
310-
-3 | Indicates that problems were encountered with the phpMussel signatures files.
311-
-2 | Indicates that corrupt data was detected during the scan and thus the scan failed to complete.
312-
-1 | Indicates that extensions or addons required by PHP to execute the scan were missing and thus the scan failed to complete.
313-
0 | Indicates that the scan target doesn't exist and thus there was nothing to scan.
314-
1 | Indicates that the target was successfully scanned and no problems were detected.
315-
2 | Indicates that the target was successfully scanned and problems were detected.
351+
-5 | <div dir="rtl">يشير إلى أن الفحص فشل في إكمال لأسباب أخرى.</div>
352+
-4 | <div dir="rtl">يشير إلى أنه لا يمكن فحص البيانات بسبب التشفير.</div>
353+
-3 | <div dir="rtl">يشير إلى وجود مشاكل في ملفات توقيعات phpMussel.</div>
354+
-2 | <div dir="rtl">يشير إلى أنه تم الكشف عن بيانات فاسدة أثناء الفحص وبالتالي فشل اكتمال الفحص.</div>
355+
-1 | <div dir="rtl">يشير إلى أن الامتدادات المطلوبة من قبل PHP لتنفيذ الفحص كانت مفقودة وبالتالي فشل إكمال الفحص.</div>
356+
0 | <div dir="rtl">يشير إلى أن هدف الفحص غير موجود، وبالتالي لم يكن هناك شيء للمسح الضوئي.</div>
357+
1 | <div dir="rtl">يشير إلى أن الهدف تم فحصه بنجاح ولم يتم اكتشاف أي مشاكل.</div>
358+
2 | <div dir="rtl">يشير إلى أن الهدف تم فحصه بنجاح وتم اكتشاف المشكلات.</div>
359+
360+
<div dir="rtl">حدد 2 لإرجاع نتائج الفحص على أنها صحيحة أو خاطئة.<br /><br /></div>
361+
362+
النتائج | وصف
363+
:-:|:--
364+
`true` | <div dir="rtl">تم الكشف عن مشاكل (هدف الفحص سيء/خطير).</div>
365+
`false` | <div dir="rtl">لم يتم الكشف عن المشكلات (ربما يكون هدف الفحص على ما يرام).</div>
366+
367+
<div dir="rtl">حدد 3 لإرجاع نتائج المسح كمصفوفة لكل عنصر تم مسحه ضوئيًا كنص قابل للقراءة البشرية.<br /><br /></div>
368+
369+
<div dir="rtl">إخراج المثال:<br /><br /></div>
370+
371+
```
372+
array(3) {
373+
["dcacac499064454218823fbabff7e09b5b011c0c877ee6f215f35bffb195b6e9:654:ascii_standard_testfile.txt"]=>
374+
string(73) "Detected phpMussel-Testfile.ASCII.Standard (ascii_standard_testfile.txt)!"
375+
["c845b950f38399ae7fe4b3107cab5b46ac7c3e184dddfec97d4d164c00cb584a:491:coex_testfile.rtf"]=>
376+
string(53) "Detected phpMussel-Testfile.CoEx (coex_testfile.rtf)!"
377+
["d45d5d9df433aefeacaece6162b835e6474d6fcb707d24971322ec429707c58f:185:encrypted.zip"]=>
378+
string(77) "Detected encrypted archive; Encrypted archives not permitted (encrypted.zip)!"
379+
}
380+
```
381+
382+
<div dir="rtl">حدد 4 لإرجاع نتائج المسح كسلسلة نص قابل للقراءة (مثل 3، ولكن كسلسلة بدلاً من صفيف).<br /><br /></div>
383+
384+
<div dir="rtl">إخراج المثال:<br /><br /></div>
385+
386+
```
387+
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)!
388+
```
389+
390+
<div dir="rtl">حدد أي قيمة أخرى لإرجاع النص المنسق (مثل نتائج الفحص التي تمت رؤيتها عند استخدام CLI).<br /><br /></div>
391+
392+
<div dir="rtl">إخراج المثال:<br /><br /></div>
316393

317394
<div dir="rtl">أنظر أيضا: <a href="#SCAN_DEBUGGING">كيفية الوصول إلى تفاصيل محددة حول الملفات عند مسحها ضوئيا؟</a><br /></div>
318395

@@ -1044,21 +1121,21 @@ smtp_secure
10441121

10451122
<div dir="rtl">أول 9 بايت <code dir="ltr">[x0-x8]</code> من ملف التوقيع phpMussel هو <code dir="ltr">phpMussel</code>، والعمل بمثابة "عدد سحري" (magic number)، لتحديدها كملفات توقيع (وهذا يساعد على منع عن طريق الخطأ باستخدام الملفات التي ليست ملفات التوقيع). البايت المقبل <code dir="ltr">[x9]</code> يحدد نوع ملف التوقيع، والتي يجب أن تعرف من أجل أن تكون قادرة على تفسير ملف التوقيع بشكل صحيح. يتم التعرف على الأنواع التالية من ملفات التوقيع:<br /><br /></div>
10461123

1047-
&nbsp; <div dir="rtl" style="display:inline">نوع</div> | <div dir="rtl" style="display:inline">بايت</div> | <div dir="rtl" style="display:inline">وصف</div>
1124+
&nbsp; <div dir="rtl" style="display:inline">نوع</div> | <div dir="rtl">بايت</div> | <div dir="rtl">وصف</div>
10481125
---|---|---
1049-
`General_Command_Detections` | `0?` | <div dir="rtl" style="display:inline">بالنسبة إلى ملفات التوقيع "القيم المفصولة بفواصل". التوقيعات هي سلاسل مشفرة عشرية للبحث عن الملفات. التوقيعات هنا ليس لديها أي أسماء أو تفاصيل أخرى (فقط السلسلة للكشف).</div>
1050-
`Filename` | `1?` | <div dir="rtl" style="display:inline">لتوقيعات اسم الملف.</div>
1051-
`Hash` | `2?` | <div dir="rtl" style="display:inline">لتوقيعات تجزئة الملف.</div>
1052-
`Standard` | `3?` | <div dir="rtl" style="display:inline">لملفات التوقيع التي تعمل مباشرة مع محتوى الملف.</div>
1053-
`Standard_RegEx` | `4?` | <div dir="rtl" style="display:inline">لملفات التوقيع التي تعمل مباشرة مع محتوى الملف. يمكن أن تحتوي التوقيعات على تعبيرات عادية.</div>
1054-
`Normalised` | `5?` | <div dir="rtl" style="display:inline">لملفات التوقيع التي تعمل مع محتوى ملف أنسي-تطبيع.</div>
1055-
`Normalised_RegEx` | `6?` | <div dir="rtl" style="display:inline">لملفات التوقيع التي تعمل مع محتوى ملف أنسي-تطبيع. يمكن أن تحتوي التوقيعات على تعبيرات عادية.</div>
1056-
`HTML` | `7?` | <div dir="rtl" style="display:inline">لملفات التوقيع التي تعمل مع محتوى ملف بتنسيق هتمل.</div>
1057-
`HTML_RegEx` | `8?` | <div dir="rtl" style="display:inline">لملفات التوقيع التي تعمل مع محتوى ملف بتنسيق هتمل. يمكن أن تحتوي التوقيعات على تعبيرات عادية.</div>
1058-
`PE_Extended` | `9?` | <div dir="rtl" style="display:inline">لملفات التوقيع التي تعمل مع البيانات الوصفية PE (باستثناء البيانات الوصفية المقطعية PE).</div>
1059-
`PE_Sectional` | `A?` | <div dir="rtl" style="display:inline">لملفات التوقيع التي تعمل مع البيانات الوصفية المقطع PE.</div>
1060-
`Complex_Extended` | `B?` | <div dir="rtl" style="display:inline">لملفات التوقيع التي تعمل مع قواعد مختلفة استنادا إلى بيانات التعريف الموسعة التي تم إنشاؤها بواسطة phpMussel.</div>
1061-
`URL_Scanner` | `C?` | <div dir="rtl" style="display:inline">لملفات التوقيع التي تعمل مع عناوين URL.</div>
1126+
`General_Command_Detections` | `0?` | <div dir="rtl">بالنسبة إلى ملفات التوقيع "القيم المفصولة بفواصل". التوقيعات هي سلاسل مشفرة عشرية للبحث عن الملفات. التوقيعات هنا ليس لديها أي أسماء أو تفاصيل أخرى (فقط السلسلة للكشف).</div>
1127+
`Filename` | `1?` | <div dir="rtl">لتوقيعات اسم الملف.</div>
1128+
`Hash` | `2?` | <div dir="rtl">لتوقيعات تجزئة الملف.</div>
1129+
`Standard` | `3?` | <div dir="rtl">لملفات التوقيع التي تعمل مباشرة مع محتوى الملف.</div>
1130+
`Standard_RegEx` | `4?` | <div dir="rtl">لملفات التوقيع التي تعمل مباشرة مع محتوى الملف. يمكن أن تحتوي التوقيعات على تعبيرات عادية.</div>
1131+
`Normalised` | `5?` | <div dir="rtl">لملفات التوقيع التي تعمل مع محتوى ملف أنسي-تطبيع.</div>
1132+
`Normalised_RegEx` | `6?` | <div dir="rtl">لملفات التوقيع التي تعمل مع محتوى ملف أنسي-تطبيع. يمكن أن تحتوي التوقيعات على تعبيرات عادية.</div>
1133+
`HTML` | `7?` | <div dir="rtl">لملفات التوقيع التي تعمل مع محتوى ملف بتنسيق هتمل.</div>
1134+
`HTML_RegEx` | `8?` | <div dir="rtl">لملفات التوقيع التي تعمل مع محتوى ملف بتنسيق هتمل. يمكن أن تحتوي التوقيعات على تعبيرات عادية.</div>
1135+
`PE_Extended` | `9?` | <div dir="rtl">لملفات التوقيع التي تعمل مع البيانات الوصفية PE (باستثناء البيانات الوصفية المقطعية PE).</div>
1136+
`PE_Sectional` | `A?` | <div dir="rtl">لملفات التوقيع التي تعمل مع البيانات الوصفية المقطع PE.</div>
1137+
`Complex_Extended` | `B?` | <div dir="rtl">لملفات التوقيع التي تعمل مع قواعد مختلفة استنادا إلى بيانات التعريف الموسعة التي تم إنشاؤها بواسطة phpMussel.</div>
1138+
`URL_Scanner` | `C?` | <div dir="rtl">لملفات التوقيع التي تعمل مع عناوين URL.</div>
10621139

10631140
<div dir="rtl">البايت المقبل <code dir="ltr">[x10]</code> هو خط جديد <code dir="ltr">[0A]</code>، ويختتم رأس ملف التوقيع phpMussel.<br /><br /></div>
10641141

@@ -1163,8 +1240,8 @@ smtp_secure
11631240

11641241
&nbsp; <div dir="rtl" style="display:inline">phpMussel لا ينبغي منع ملف</div> | &nbsp; <div dir="rtl" style="display:inline">phpMussel يجب منع ملف</div> | &nbsp;
11651242
---|---|---
1166-
&nbsp; <div dir="rtl" style="display:inline">سلبي صحيح (الاستدلال الصحيح)</div> | <div dir="rtl" style="display:inline">افتقد (التناظرية من سلبي خاطئة)</div> | <div dir="rtl" style="display:inline"><strong>phpMussel لا يمنع ملف</strong></div>
1167-
&nbsp; <div dir="rtl" style="display:inline"><strong>إيجابية خاطئة</strong></div> | <div dir="rtl" style="display:inline">إيجابية صحيح (الاستدلال الصحيح)</div> | <div dir="rtl" style="display:inline"><strong>phpMussel منع ملف</strong></div>
1243+
&nbsp; <div dir="rtl" style="display:inline">سلبي صحيح (الاستدلال الصحيح)</div> | <div dir="rtl">افتقد (التناظرية من سلبي خاطئة)</div> | <div dir="rtl"><strong>phpMussel لا يمنع ملف</strong></div>
1244+
&nbsp; <div dir="rtl" style="display:inline"><strong>إيجابية خاطئة</strong></div> | <div dir="rtl">إيجابية صحيح (الاستدلال الصحيح)</div> | <div dir="rtl"><strong>phpMussel منع ملف</strong></div>
11681245

11691246
#### <div dir="rtl"><a name="SIGNATURE_UPDATE_FREQUENCY"></a>عدد المرات التي يتم تحديثها التوقيعات؟<br /><br /></div>
11701247

readme.de.md

Lines changed: 77 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -299,6 +299,49 @@ unset($Web, $FrontEnd, $Scanner, $Loader);
299299

300300
#### 3.5 SCANNER-API
301301

302+
Sie können die phpMussel-Scanner-API auch in anderen Programmen und Skripten implementieren, wenn Sie möchten.
303+
304+
Als vollständiges Beispiel:
305+
306+
```PHP
307+
// Path to vendor directory.
308+
$Vendor = __DIR__ . DIRECTORY_SEPARATOR . 'vendor';
309+
310+
// Composer's autoloader.
311+
require $Vendor . DIRECTORY_SEPARATOR . 'autoload.php';
312+
313+
// Location of the test files.
314+
$Samples = sprintf($Vendor . '%1$sphpmussel%1$score%1$stests%1$s_support%1$ssamples', DIRECTORY_SEPARATOR);
315+
316+
$Loader = new \phpMussel\Core\Loader();
317+
$Scanner = new \phpMussel\Core\Scanner($Loader);
318+
$Loader->Events->addHandler('sendMail', new \phpMussel\PHPMailer\Linker($Loader));
319+
320+
// Execute the scan.
321+
$Results = $Scanner->scan($Samples);
322+
323+
// Cleanup.
324+
unset($Scanner, $Loader);
325+
326+
var_dump($Results);
327+
```
328+
329+
Der wichtige Teil dieses Beispiels ist die `scan()`-Methode. Die `scan()`-Methode akzeptiert zwei Parameter:
330+
331+
```PHP
332+
public function scan(mixed $Files, int $Format = 0): mixed
333+
```
334+
335+
Der erste Parameter kann eine String oder ein Array sein und teilt dem Scanner mit, was gescannt werden soll. Es kann sich um eine String handeln, die eine bestimmte Datei oder ein bestimmtes Verzeichnis angibt, oder um ein Array solcher Zeichenfolgen, um mehrere Dateien/Verzeichnisse anzugeben.
336+
337+
Als String sollte es zeigen, wo sich die Daten befinden. Als Array sollten die Array-Schlüssel die ursprünglichen Namen der zu scannenden Elemente angeben, und die Werte sollten darauf verweisen, wo sich die Daten befinden.
338+
339+
Der zweite Parameter ist eine Integer/Ganzzahl und teilt dem Scanner mit, wie er seine Scanergebnisse zurückgeben soll.
340+
341+
Geben Sie 1 an, um die Scanergebnisse als Array für jedes als Integer/Ganzzahl gescannte Element zurückzugeben.
342+
343+
Diese Integers/Ganzzahlen haben folgende Bedeutung:
344+
302345
Ergebnisse | Beschreibung
303346
--:|:--
304347
-5 | Zeigt an, dass der Scan aus anderen Gründen nicht abgeschlossen werden konnte.
@@ -310,6 +353,40 @@ Ergebnisse | Beschreibung
310353
1 | Zeigt an, dass das Ziel erfolgreich geprüft wurde und keine Probleme erkannt wurden.
311354
2 | Zeigt an, dass das Ziel erfolgreich geprüft wurde, jedoch Probleme gefunden wurden.
312355

356+
Geben Sie 2 um die Scanergebnisse als Booleschen Wert zurückzugeben an.
357+
358+
Ergebnisse | Beschreibung
359+
:-:|:--
360+
`true` | Probleme wurden erkannt (Scan-Ziel ist schlecht/gefährlich).
361+
`false` | Probleme wurden nicht erkannt (Scan-Ziel ist wahrscheinlich in Ordnung).
362+
363+
Geben Sie 3 um die Scanergebnisse als Array für jedes Element als menschlich lesbarer Text gescannte zurückzugeben an.
364+
365+
*Beispielausgabe:*
366+
367+
```
368+
array(3) {
369+
["dcacac499064454218823fbabff7e09b5b011c0c877ee6f215f35bffb195b6e9:654:ascii_standard_testfile.txt"]=>
370+
string(73) "Detected phpMussel-Testfile.ASCII.Standard (ascii_standard_testfile.txt)!"
371+
["c845b950f38399ae7fe4b3107cab5b46ac7c3e184dddfec97d4d164c00cb584a:491:coex_testfile.rtf"]=>
372+
string(53) "Detected phpMussel-Testfile.CoEx (coex_testfile.rtf)!"
373+
["d45d5d9df433aefeacaece6162b835e6474d6fcb707d24971322ec429707c58f:185:encrypted.zip"]=>
374+
string(77) "Detected encrypted archive; Encrypted archives not permitted (encrypted.zip)!"
375+
}
376+
```
377+
378+
Geben Sie 4 um die Scanergebnisse als Zeichenfolge mit lesbarem Text zurückzugeben an (wie 3, aber implodiert).
379+
380+
*Beispielausgabe:*
381+
382+
```
383+
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)!
384+
```
385+
386+
Geben Sie *jede anderen Wert* um formatierten Text zurückzugeben an (d.h., die Scanergebnisse dass wenn Verwendung von CLI gesehen werden).
387+
388+
*Beispielausgabe:*
389+
313390
*Siehe auch: [Wie man spezifische Details über Dateien zugreifen, wenn sie gescannt werden?](#SCAN_DEBUGGING)*
314391

315392
#### 3.6 ZWEI-FAKTOR-AUTHENTIFIZIERUNG

0 commit comments

Comments
 (0)