সার্ভারের টোকেনগুলি কীভাবে বন্ধ রয়েছে তা আমি কীভাবে চেক করব?


11

আমাদের পেনটেস্ট রিপোর্ট থেকে আমাদের প্রতিক্রিয়া জানানো হয়েছে যে আমাদের সার্ভার টোকেনগুলি বন্ধ করা উচিত। এটি লোকেদের পিএইচপি এর কোন সংস্করণ আমরা ব্যবহার করছি তা দেখতে সক্ষম হওয়া এবং নির্দিষ্ট পিএইচপি সংস্করণকে লক্ষ্য করে দেখার ক্ষমতা সীমাবদ্ধ করে দেওয়া is

আমি নিম্নলিখিতটি http ব্লকের অধীনে nginx.conf এ যুক্ত করেছি:

server_tokens off;

তবে এই পরিবর্তনটি পরীক্ষা করতে আমি কী কী সরঞ্জাম ব্যবহার করতে পারি তা প্রভাবিত হয়েছে?


1
server_tokenপিএইচপি সংস্করণটির সাথে কোনও সম্পর্ক নেই। এটি সাধারণত পৃথক শিরোনামে প্রেরণ করা হয় X-Powered-By। আমি অনুমান করি আপনার দরকার php.net/manual/en/ini.core.php#ini.expose-php
আলেক্সি টেন

অ্যালেক্সিকে ভাল ক্যাচ করুন, সার্ভার টোকেনগুলি আমার সমাধানের একমাত্র অংশ। পিএইচপি সংস্করণ প্রকাশ বন্ধ করতে আমার আরও সেটিং যুক্ত করতে হবে। ধন্যবাদ!
fyberoptik

উত্তর:


14

ম্যানুয়াল থেকে আপনি জানেন যে সেটিংসটি কী করে:

সিনট্যাক্স : server_tokens on | off;
ডিফল্ট : server_tokens on;
প্রসঙ্গ : HTTP, সার্ভার, অবস্থান

ত্রুটি বার্তাগুলিতে এবং "সার্ভার" প্রতিক্রিয়া শিরোলেখ ক্ষেত্রে Nginx সংস্করণ নির্গত করতে সক্ষম বা অক্ষম করে।

সুতরাং আপনার বিকল্পগুলি হ'ল:

  • একটি ত্রুটি বার্তা উত্পন্ন করুন, উদাহরণস্বরূপ, যদি আপনার কাছে কাস্টম 404 ত্রুটি বার্তা না থাকে তবে কেবল অ-বিদ্যমান পৃষ্ঠাটির অনুরোধ করুন এবং পাদলেখ আপনি সংস্করণ তথ্য আর দেখতে পাবেন না nginx/1.2.3
  • সার্ভার শিরোনামগুলি পরীক্ষা করুন এবং নিশ্চিত করুন যে সংস্করণটি আর প্রদর্শিত হবে না।

এইচটিটিপি রেসপন্স শিরোনামগুলি দেখতে একটি সহজ চেক হ'ল ম্যানুয়ালি সংযুক্ত করা হয় যার সাথে: telnet www.example.com 80 যেখানে ক্লায়েন্টের লাইনগুলি আপনি প্রবেশ করেন তা:

ক্লায়েন্ট: হেড / এইচটিটিপি / 1.1
ক্লায়েন্ট: হোস্ট: www.example.com

সার্ভার: HTTP / 1.1 200 ওকে
সার্ভার: তারিখ: বুধ, 1 জানুয়ারী 1970 22:13:05 GMT
সার্ভার: সার্ভার: Nginx / 1.2.3
সার্ভার: সংযোগ:
সার্ভারটি বন্ধ করুন : সামগ্রী-প্রকার: পাঠ্য / এইচটিএমএল


1
আপনার উত্তর HBruijn জন্য ধন্যবাদ, স্রেফ উইন্ডোজ 7 টেলনেট চেষ্টা করে ব্যর্থ হয়েছে। কার্ল- I উদাহরণ.com দিয়ে আরও কিছুটা সাফল্য পেয়েছিল তবে এটি কোনও পিএইচপি তথ্য দেখায় না।
fyberoptik

এটি পিএইচপি-তে প্রভাব ফেলবে না যদিও এটি সাধারণত পৃষ্ঠাগুলিতে একটি ভিন্ন শিরোনাম ...
টমাস ওয়ার্ড

4

আরও কিছুটা গুগল করার পরে, আমি পেয়েছি কার্ল কমান্ড সার্ভারের শিরোনামগুলি পরীক্ষা করতে পারে যা সার্ভার টোকেন এবং পিএইচপি উভয় সংস্করণ দেখায়:

curl -I -L www.example.com

পিএইচপি-তে প্রয়োজনীয় পরিবর্তনটি নির্দেশ করার জন্য আলেকসিকে ধন্যবাদ।

HTTP/1.1 301 Moved Permanently
Server: nginx
Date: Thu, 04 Jun 2015 10:49:35 GMT
Content-Type: text/html
Content-Length: 178
Connection: keep-alive
Location: https://www.example.com

HTTP/1.1 200 OK
Server: nginx
Date: Thu, 04 Jun 2015 10:49:36 GMT
Content-Type: text/html; charset=utf-8
Connection: keep-alive
Expires: Sun, 19 Nov 1978 05:00:00 GMT
Last-Modified: Thu, 04 Jun 2015 10:49:35 GMT
Cache-Control: no-cache, must-revalidate, post-check=0, pre-check=0
ETag: "1433414975"
Content-Language: en

1

এছাড়াও, যদি আপনি পিএইচপি প্রকল্পগুলি পরিবেশন করেন তবে আপনাকে পরিবর্তনের প্রয়োজন হতে পারে /etc/nginx/{fastcgi,fastcgi_params).conf

fastcgi_param  SERVER_SOFTWARE    nginx;

0

ইনস্পেক দেখুন, এমন একটি সরঞ্জাম যা আপনাকে "আপনার সম্মতি, সুরক্ষা এবং অন্যান্য নীতিমালার প্রয়োজনীয়তাগুলিকে স্বয়ংক্রিয় পরীক্ষায় পরিণত করতে দেয়"।

https://www.inspec.io

এটি আপনার এনগিনেক্স সার্ভারের জন্য আপনার প্রয়োজনীয় সমস্ত কনফিগারেশন পরীক্ষা করতে পারে। কনফিড ফাইলটির অস্তিত্ব এবং এর মান পরীক্ষা করার জন্য এখানে একটি উপায় রয়েছে server_tokens:

conf_path = '/etc/nginx/nginx.conf'

control 'Server tokens should be off' do
  describe file(conf_path) do
    it 'The config file should exist and be a file.' do
      expect(subject).to(exist)
      expect(subject).to(be_file)
    end
  end
  if (File.exist?(conf_path))
    Array(nginx_conf(conf_path).params['http']).each do |http|
      describe "http:" do
        it 'server_tokens should be off if found in the http context.' do
          Array(http["server_tokens"]).each do |tokens|
            expect(tokens).to(cmp 'off')
          end
        end
      end
    end
  end
end

যদি সঠিকভাবে সেট করা থাকে তবে ইনস্পেক ফিরে আসে:

  ✔  Server tokens should be off: File /etc/nginx/nginx.conf
     ✔  File /etc/nginx/nginx.conf The config file should exist and be a file.
     ✔  http: server_tokens should be off if found in the http context.

যদি না:

  ×  Server tokens should be off: File /etc/nginx/nginx.conf (1 failed)
     ✔  File /etc/nginx/nginx.conf The config file should exist and be a file.
     ×  http: server_tokens should be off if found in the http context.

     expected: "off"
          got: ["on"]

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