حماية الملفات المرفوعه على الموقع


التعليقات

افضل طريقة للحماية من ملفات الشيل عن طريق .htaccess :

1) تمنع تشغيل اي ملف عدا الملفات التي تحمل الامتدادات المصرح لها

2) تمنع استخدام php في هذا المجلد

3) اجبار المتصفح ان يعرض الملف كصورة عن طريق MIME types مثل image/jpeg

ولزياده الحرص تقوم بفلترة الملفات عند رفعها والتاكد من امتداداتها وبالنسبة للصور php تمنحك القدرة على انشاء صورة جديدة من الصورة الحالية , واذا كانت الميزانية تسمح تقوم بحفظ الملفات المرفوعه على سيرفر خارجي او مكان اخر غير موجود عليه ملفات للموقع .

هذا كود .htaccess لحماية الملفات

IndexIgnore *

## السماح للملفات التالية فقط للوصول اليها

deny from all

<Files ~ "^\w+\.(gif|jpg|png|jpeg|svg)$">

order deny,allow

allow from all

</Files>

## تعطيل جميع الملفات التنفيذية في المجلد

Options -Indexes -ExecCGI

RemoveHandler .php .phtml .php3

RemoveType .php .phtml .php3

php_flag engine off 

ForceType application/octet-stream

<FilesMatch "(?i).jpe?g$">

ForceType image/jpeg

</FilesMatch>

<FilesMatch "(?i).gif$">

ForceType image/gif

</FilesMatch>

<FilesMatch "(?i).png$">

    ForceType image/png

</FilesMatch>

شكرا لك حبيبي

سؤال هل هنا بالسطر ده jpe?g$

يوجد خطأ ارى علامة الاستفهام ؟ في وسط صيقة الصورة !

لا يوجد خطا عزيزي علامة الاستفهام موجوده حتى تقبل الامتدادين

.jpg

او

.jpeg

وتعني ان حرف e يمكن ان يكون موجود او لا

طريقة فعالة لكن ليست أمنة 100% . هي أن تقرأ الملف المرفوع و تتأكد أنه لا يبدأ ب <? أو لا يحتوي على دوال خطيرة مثل eval او exec . هذا الكود موجود في أحد مشاريعي :

ارفع الملفات على مكان منفصل عن موقعك، مثلا AWS S3 وسوف ترتاح من وجع الرأس

حتى فيسبوك يقوم بذلك من ناحية الصور وملفات الفيديو، تخزن في مكان مخصص لها.

شكرا لك لكن ما هي الالية وكم الاسعار