htaccess দ্বারা একটি ফোল্ডার এবং ফাইলের সরাসরি অ্যাক্সেস অস্বীকার করুন


133

এই দৃশ্যটি এখানে:

  • index.phpরুট ফোল্ডারে একটি ফাইল রয়েছে
  • কিছু ফাইল অন্তর্ভুক্ত করা হয় index.php, যা হয় includesফোল্ডার।
  • submit.phpফর্ম জমা দেওয়ার ক্রিয়াকলাপের জন্য অন্য 1 টি ফাইল ( ) মূল ফোল্ডারে রয়েছে।

আমি includeshtaccess দ্বারা ফোল্ডারে ফাইলগুলিতে সরাসরি ব্যবহারকারীর অ্যাক্সেসকে সীমাবদ্ধ করতে চাই । এছাড়াও submit.php। তবে অন্তর্ভুক্ত index.phpফাইলের জন্য কাজ করবে । পছন্দ করুন, যদি ব্যবহারকারী টাইপ করেন তবে www.domain.com/includes/somepage.phpএটি এটি সীমাবদ্ধ করবে (কোনও ত্রুটির পৃষ্ঠায় পুনর্নির্দেশ করা হতে পারে)।

উত্তর:


266

আমি কেবল includesফোল্ডারটিকে ওয়েব-রুট থেকে সরিয়ে ফেলব, তবে আপনি যদি পুরো includesফোল্ডারে সরাসরি অ্যাক্সেস আটকাতে চান তবে আপনি সেই ফোল্ডারে একটি .htaccessফাইল রাখতে পারেন যাতে ঠিক রয়েছে:

deny from all

এইভাবে আপনি সেই ফোল্ডারটি থেকে কোনও ফাইল খুলতে পারবেন না, তবে কোনও সমস্যা ছাড়াই আপনি পিএইচপি-তে অন্তর্ভুক্ত করতে পারেন।


7
অন্যান্য ফোল্ডার সেই ফোল্ডারে উপস্থিত ফাইলটিতে আজাক্স অনুরোধ করতে সক্ষম হবে?
চৈতন্য চান্দুরকার

16
@ চৈতন্যচন্দুরকর না, একটি এজাক্স অনুরোধটি একটি সাধারণ http অনুরোধ তাই এটি অস্বীকার করা হবে।
জিরোইন

Sr b / c আমি নতুন ওয়েব প্রোগ্রামিং করছি। আমি কীভাবে আমার ফাইল index.php অ্যাক্সেসের জন্য একটি ব্যতিক্রম যুক্ত করতে পারি?
ফ্যাটএইচভি

আমি সকলের থেকে অস্বীকার করলাম এবং এটি প্রতিটি ইউআরএলকে সীমাবদ্ধ করেছিল..এছাড়াও লগইন পৃষ্ঠা প্রদর্শন করে না .. :(
আমির

@ আমির এটি সঠিক, সেই ফোল্ডারে কোনও ইউআরএল অ্যাক্সেসযোগ্য হবে না তবে আপনি কোনও সমস্যা ছাড়াই এগুলিকে অন্য ফাইলে অন্তর্ভুক্ত করতে পারেন।
jeroen

56

এটি খাঁটি mod_rewriteভিত্তিক সমাধান:

RewriteRule ^(includes/|submit\.php) - [F,L,NC]

এটি ইউআরআইতে অন্তর্ভুক্ত থাকলে /includes/বা ব্যবহার করতে নিষিদ্ধ ত্রুটি প্রদর্শন করবে/submit.php


3
জমা ফাইলটি সম্বোধন করা ভাল কাজ
সিটিএস_এইই

29

কোনও ফাইল নির্দেশিকা ব্যবহার করা এবং সমস্ত ফাইলে অ্যাক্সেসের অনুমতি দেওয়া সম্ভব হয়, তারপরে অ্যাক্সেসযোগ্য ফাইলগুলি সেট করতে আবার এটি ব্যবহার করুন:

<Files ~ "^.*">
  Deny from all
</Files>

<Files ~ "^index\.php|css|js|.*\.png|.*\.jpg|.*\.gif">
  Allow from all
</Files>

6
যিনি তার সমস্যা সমাধান করেছেন কিনা সে প্রশ্নটি পোস্ট করেছেন তার সম্পর্কে আমি নিশ্চিত নই, তবে এটি এসও এর সৌন্দর্য যা একাধিক উত্তর বহু সদস্যকে সহায়তা করতে পারে। এই শেষ উত্তরটি আমার সমস্যার সমাধান করেছে। আমি সাইটগুলিকে সিএসএস ফাইল পেতে দিতে চাই তবে টিটিএফ বা ওটিফ ফন্টের অ্যাক্সেস এবং বুম করতে পারি না! সমাধান।
মোক্সেট খান

এর পরে আমি সাব
ফোল্ডারে

14

1 লাইনার Mod_alias ভিত্তিক সমাধান:

RedirectMatch 403 ^/folder/file.php$

এটি /folder/file.php এর জন্য নিষিদ্ধ ত্রুটি প্রদর্শন করবে


1
+1 - এটি আসলে খুব ভাল, কারণ আপনি যদি পুরো ফোল্ডারে 404 প্রয়োগ করেন তবে রেগেক্স ব্যবহার করে কোন ফাইল উপস্থিত রয়েছে তা কেউ দেখতে পায় না ^folder
bytecode77

9

যদি আমি সঠিকভাবে বুঝতে পারি তবে আপনি কেবল অন্তর্ভুক্ত ফোল্ডারে অ্যাক্সেস অস্বীকার করতে চান?

অন্তর্ভুক্ত ফোল্ডারে রাখা সমস্ত 'ডেইন থেকে সমস্ত' নির্দেশনা সহ একটি .htaccess কৌশলটি করবে।


8

আপনার কিউ দুটি অংশে আসে, জিরোইন এবং অনুভার সমাধান দুটিই প্রথম অংশের জন্য কাজ করে - এতে অ্যাক্সেস অস্বীকার / অন্তর্ভুক্ত করে। অনুভাও দ্বিতীয় খণ্ডের জন্য কাজ করে। আমি পরেরটি পছন্দ করি কারণ আমি DOCROOT/.htaccessযেভাবেই ব্যবহার করি এবং এটি এমন একটি ফাইলকে একটি ফাইলে রাখে in

তবে আমি যা আলোচনা করতে চাই তা হ'ল "অ্যাক্সেসকে অস্বীকার করা submit.php" ধারণা । আপনি যদি ব্যবহার করতে না চান submit.phpতবে কেন এটি একেবারে ডোকরটে রয়েছে? আমি সন্দেহ করি যে এখানে উত্তরটি হ'ল আপনি এটিকে কিছু ফর্মের ক্রিয়া লক্ষ্য হিসাবে ব্যবহার করেন এবং কেবল ফর্মটি জমা দেওয়ার সময় তা বরখাস্ত করতে চান, যেমন স্প্যামবট থেকে।

যদি এটি সত্য হয় তবে আপনি অনুভার অংশ দ্বিতীয়টি ব্যবহার করতে পারবেন না কারণ এটি আপনার ফর্মটি ব্যর্থ করে দেবে। আপনি এখানে যা করতে পারেন তা হ'ল (i) .htaccessযাচাইকারী আপনার নিজের সূচক পৃষ্ঠাটি তা নিশ্চিত করার জন্য:

RewriteCond %{HTTP_REFERRER} !=HTTP://www.domain.com/index.php   [NC]
RewriteRule ^submit\.php$    -                                   [F]

এবং (ii) আপনার পিএইচপি সূচক মধ্যে রয়েছে। পিএইচপি ফর্ম জেনারেটরের একটি টাইমস্ট্যাম্প এবং বৈধতার জন্য কিছু লুকানো ক্ষেত্র অন্তর্ভুক্ত। বৈধতা হতে পারে, বলুন, টাইমস্ট্যাম্পের MD5 এর প্রথম 10 টি অক্ষর এবং কিছু অভ্যন্তরীণ গোপনীয়তা। জমা দেওয়ার প্রক্রিয়া করার সময় আপনি (i) যাচাই করতে পারেন যে টাইমস্ট্যাম্প এবং বৈধতা মিলছে, এবং (ii) টাইমস্ট্যাম্পের মধ্যে রয়েছে, বলুন, বর্তমান সময়ের 15 মিনিট।

এটি আপনি স্প্যামিংকে একমাত্র ব্যবহারিক উপায় হিসাবে আটকাতে পারবেন যে কোনও স্প্যামার একটি বৈধ টাইমস্ট্যাম্প / যাচাইকরণের জুটি পেতে পারে কোনও ফর্ম পার্স করার জন্য, তবে এই স্ক্র্যাপের কেবল 15 মিনিটের জীবন থাকবে।


6

উচ্চ স্তরে সেট করা সম্ভাব্য অন্যান্য বিকল্পগুলির উপর নির্ভর করে আপনার নিজের অন্তর্ভুক্ত ডিরেক্টরিতে আপনার .htaccess ফাইলটিতে নিম্নলিখিতগুলি লাগাতে হতে পারে:

Satisfy all
Order deny,allow
Deny from all

উপরের ডিরেক্টরিটি লাইন সহ মৌলিক প্রমাণীকরণের সংজ্ঞা দিলে আমি এতে প্রবেশ করি:

Satisfy any

এটি আমার অস্বীকারকে কার্যকর হতে সকলকে বাধা দিচ্ছিল কারণ ব্যবহারকারীরা প্রমাণীকৃত ছিল।


1

আপনি .htaccessফাইলের জন্য নীচের কমান্ডটি যুক্ত করতে পারেন

Deny from all
ErrorDocument 403 "nothing is here"

এটি অননুমোদিত অ্যাক্সেসের ক্ষেত্রে "এখানে কিছুই নেই" বার্তাটি প্রদর্শন করবে।

আপনি যদি কোনও ত্রুটি কোডের মাধ্যমে কোনও নির্দিষ্ট পৃষ্ঠায় পুনর্নির্দেশ করতে চান তবে আপনি নিম্নরূপ একটি আদেশ নির্ধারণ করতে পারেন:

ErrorDocument 404 "/errors/404.html"

এটি পুনর্নির্দেশ করবে /errors/404.htmlএবং কাস্টম পৃষ্ঠাটি পাওয়া যায়নি স্ক্রিনটি দেখায়।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.