siavashsay
یک شنبه 15 بهمن 1391, 11: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
فرض کنید که می خواهید اجازه آپلود فایلهای برنامه مثل 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