PDA

View Full Version : آموزش: 10 کد مفید برای htaccess ! ( قسمت دوم - مسائل امنیتی )



siavashsay
یک شنبه 15 بهمن 1391, 10:12 صبح
1- جلوگیری از اجرای بعضی فایلها
فرض کنید که می خواهید اجازه آپلود فایلهای برنامه مثل php را به کاربر بدهید اما نمی خواهید فایلهای آپلود شده اجرا شوند ، مثلا در بعضی آپلود سنتر های خاص که می خواهند اجازه آپلود همه نوع فایل را بدهند مفید و حیاتی است که این فایلها اجرا پذیر نباشند .
یک روش این است که در هنگام فراخوانی ، فایل را فقط مجبور به دانلود کنیم :


RemoveHandler .php .phtml .php3
RemoveType .php .phtml .php3


همچنین می توانید موتور اجرای php را در آن پوشه خاموش کنید ، در این حالت هنگام اجرای فایل php خطایی نمایش داده خواهد شد :

php_flag engine off
برای اطمینان بیشتر می توان از ترکیب این دو کد به صورت زیر استفاده نمود .


RemoveHandler .php .phtml .php3
RemoveType .php .phtml .php3
php_flag engine off


یک روش هم این است که نه اجازه اجرا به فایل بدهیم و نه اجازه دانلود ، مثلا خطای 403 Forbidden به کاربر نمایش دهیم .

AddHandler cgi-script .php .pl .py .jsp .asp .htm .shtml .sh .cgi Options -ExecCGI
در کد بالا فایلهای زیادی را می توانید با اضافه کردن فرمتشان مسدود کنید .
روش دیگر نمایش سورس بعضی فایل های اسکریپت مثل cgi است هنگامی که قصد اجرای آن را داشته باشیم . ( برای php جواب نمی دهد )

RemoveHandler cgi-script .pl .py .cgi
2- منتقل کردن تمامی کاربران غیر از خودتان به صفحه ی موقت
وقتی در حال تغییرات بر سایتتان هستید ، بهتر است کاربران را در آن مدت به یک صفحه ی دیگر مثلا comming soon منتقل کنید . و فقط خودتان با آی پی مخصوصی که دارید ساییتان را اجرا کنید : در کل بالا آی پی آدرس خودتان و بجای alter-domain سایت یا صفحه ای که می خواهید کاربران را ارجاع دهید بنویسید .


RewriteBase /
RewriteCond %{HTTP_USER_AGENT} ^Anarchie [OR]
RewriteCond %{HTTP_USER_AGENT} ^ASPSeek [OR]
RewriteCond %{HTTP_USER_AGENT} ^attach [OR]
RewriteCond %{HTTP_USER_AGENT} ^autoemailspider [OR]
RewriteCond %{HTTP_USER_AGENT} ^Xaldon\ WebSpider [OR]
RewriteCond %{HTTP_USER_AGENT} ^Xenu [OR]
RewriteCond %{HTTP_USER_AGENT} ^Zeus.*Webster [OR]
RewriteCond %{HTTP_USER_AGENT} ^Zeus
RewriteRule ^.* - [F,L]

3- منتقل کردن پنهانی فایل های pfd به یک فایل php برای پردازش



RewriteRule ^(.+)\.pdf$ /cgi-bin/pdf-script.php?file=$1.pdf [L,NC,QSA]

Options All -Indexes


4- جلوگیری از نمایش لیست فایلهای یک پوشه :
با استفاده از کد زیر تمامی پوشه هایی که این فایل htaccess درونش است و همچنین تمامی زیر پوشه های آن را از نظر نمایش لیست فایلها مسدود می کنید .

Options All -Indexes
اگر پوشه ی مادر را از نظر نمایش فایلها مسدود کردید اما می خواستید که زیر پوشه یا پوشه ی بچه را اجازه نمایش لیست فایل بدهید کد زیر را در فایل htaccess پوشه بچه کپی کنید تا اثر مادر خنثی شود .

Options All +Indexes
5- تغییر فایل اجرایی پیش فرض سایت
معمولا وب سرور ها در هنگام مواجه شدن با دایرکتوری root دنبال فایل index می گردند ، این بطور پیش فرض به این صورت است که ابتدا index.html و سپس index.php اجرا شود ، اما اگر می خواستید از همان ابتدا یک فایل دیگر اجرا شود کد زیر را در htaccess موجود در root سایت کپی کنید و جای business.html فایل مورد نظر را قرار دهید .

DirectoryIndex business.html
6- زبان و کدینگ پیش فرض تمام فایلهای زیر شاخه :
با استفاده از این دستور می توانید encoding , language تمامی فایلهای زیر شاخه را به دلخواه تغییر بدهید :


# set the default languag
DefaultLanguage fa-IR
# set the default character set
AddDefaultCharset UTF-8


7 – تغییر صفحه های خطاها به دلخواه :



ErrorDocument 400 /errors/400.html

ErrorDocument 401 /errors/401.html

ErrorDocument 403 /errors/403.html

ErrorDocument 404 /errors/404.html

ErrorDocument 500 /errors/500.html

8 – مسدود کردن سایت در ساعتی مشخص از روز :



Options +FollowSymLinks
RewriteEngine On
RewriteBase /
# If the hour is 16 (4 PM) Then deny all access
RewriteCond %{TIME_HOUR} ^16$
RewriteRule ^.*$ - [F,L]


9 – مسدود کردن method های ارسال داده GET PUT POST :
در صورتی که بخواهید مثلا method های get , put فقط باز باشند و ارسال post ای به فایل انجام نشود از این مد می توانید استفاده کنید . ( برای اجرای سایت GET لازم است )


RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_METHOD} !^(GET|PUT)
RewriteRule .* - [F]


می توانید بجای خط آخر که خطای 301 Forbiden را ارسال می کند ، از کد زیر که در این شرایط به جایی منتقل می کند هم استفاده کنید :


RewriteRule ^(.*)$ http://taraah.ir/dl/$1 [R=301,L]


10 – مسدود کردن دسترسی مستقیم به فایلهای داخل زیر پوشه ها به غیر از php fopen
این مورد بسیار کاربردی می باشد ، بسیاری از سایتها می خواهند فایلهایشان فقط از طریق فایل php و دستور fopen دانلود یا اجرا شود و دسترسی مستقیم به فایل امکان پذیر نباشد . برای آپلود سنترها که می خواهند فایلها غیر مستقیم دانلود شود بسیار مفید است .


RewriteEngine On
RewriteBase /
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /([^/]+)/.*\ HTTP [NC]
RewriteRule .* - [F,L]




منبع : http://taraah.ir

avmajid
شنبه 12 اسفند 1391, 09:13 صبح
سلام , نیاز به کمک فوری !!!
من یه سایت نوشتم , حالا صاحب سایت می خواد مقالاتی برای دانلود بذاره که فقط اعضای سایت وقتی داخل سایت هستن بتونن دانلود کنن , یعنی کسی با آدرس مستقیم مقالات
مثل : www.mysite/pdfs/pdf1.pdf
نتونه اونا رو ببینه یا دانلود کنه !!!
کدهای بالا چندتاش عمل می کرد ولی کلن دسترسی رو می بنده , چندتاش هم عمل نکرد (شایدم من بلد نبودم چیکارش کنم)!!!
لطفن کمک
کمک
کمک :دی
avmajid@yahoo.com

avmajid
شنبه 12 اسفند 1391, 10:28 صبح
این همه برنامه نویس وب !!! کسی در این مورد اطلاعاتی نداره , کمک کنه !!!

Reza1607
شنبه 12 اسفند 1391, 12:53 عصر
این همه برنامه نویس وب !!! کسی در این مورد اطلاعاتی نداره , کمک کنه !!!

http://barnamenevis.org/showthread.php?215150-snippet-%D9%87%D8%A7%DB%8C-php&p=954537&viewfull=1#post954537