কীভাবে আইআইএস / এএসপি.নেট রেসপন্স শিরোনামগুলি সরিয়ে ফেলা যায়


46

আমার কাছে বেশ কয়েকটি আইআইএস / .0.০ সার্ভার রয়েছে যা সুরক্ষা আমাকে অনুরোধে ক্লায়েন্ট ব্রাউজারগুলিতে প্রেরিত কয়েকটি প্রতিক্রিয়া শিরোনাম সরিয়ে দিতে বলছে। তারা প্রতিক্রিয়া শিরোনামের মাধ্যমে প্ল্যাটফর্মের তথ্য প্রকাশের বিষয়ে উদ্বিগ্ন। ওয়েবসাইটের (এক্স-পাওয়ার-বাই বা এই জাতীয় কিছু শিরোনাম) আইআইএস কনফিগারেশন থেকে আমি সমস্ত এইচটিটিপি-হেডারকে সরিয়ে দিয়েছি।

(আমি ব্যক্তিগতভাবে জানি যে এই তথ্যটি গোপন থাকলেও সহজেই খুঁজে পাওয়া যায়, তবে এটি আমার কল নয় call)

শিরোনামগুলি আমি মুছে ফেলতে চাই:

  • সার্ভার - মাইক্রোসফ্ট-আইআইএস / 6.0
  • এক্স-অ্যাসপনেট-সংস্করণ - 2.0.50727

আমি এও জানি যে, এএসপি.এনইটি এমভিসিও এর নিজস্ব শিরোনামটিও নির্গত করে, যদি আপনি কীভাবে এটি অপসারণ করতে জানেন তবে এটি সহায়ক হবে।

  • এক্স-অ্যাসপনেটএমভিসি-সংস্করণ - 1.0

উত্তর:


32

আপনার সুরক্ষা বিভাগটি চায় যে আপনি এটি করতে সার্ভারের ধরণটি সনাক্তকরণ আরও শক্ত করে তুলুন। এটি স্বয়ংক্রিয় হ্যাকিং সরঞ্জামগুলির ব্যারাজকে কমিয়ে দিতে পারে এবং সার্ভারে প্রবেশের জন্য লোকদের পক্ষে এটি আরও কঠিন করে তুলতে পারে।

আইআইএসের মধ্যে, ওয়েব সাইট বৈশিষ্ট্যগুলি খুলুন, তারপরে HTTP শিরোনাম ট্যাবে যান। বেশিরভাগ এক্স-শিরোনামগুলি এখানে খুঁজে পাওয়া যায় এবং সরিয়ে নেওয়া যায়। এটি পৃথক সাইটগুলির জন্য বা পুরো সার্ভারের জন্য করা যেতে পারে (গাছের মধ্যে ওয়েব সাইটগুলির জন্য বৈশিষ্ট্যগুলি পরিবর্তন করুন)।

সার্ভার শিরোনামের জন্য, আইআইএস 6-তে আপনি এটি রিমোট করতে মাইক্রোসফ্টের ইউআরএলস্ক্যান সরঞ্জামটি ব্যবহার করতে পারেন । পোর্ট 80 সফ্টওয়্যার সার্ভারমাস্ক নামে একটি পণ্য তৈরি করে যা আপনার যত্ন নিতে হবে এবং আরও অনেক কিছু।

আইআইএস For-এর জন্য সার্ভার শিরোনাম সংশোধন করার জন্য একটি কাস্টম মডিউল ব্যবহার করার বিষয়ে একটি দুর্দান্ত নিবন্ধ রয়েছে

গ্লোবাল.এক্সএক্সে এমভিসি শিরোনামের জন্য:

MvcHandler.DisableMvcResponseHeader = true;

2
উত্তর গৃহীত হয়েছে, আশা করি আমি @ স্যুইলম্যানের সাথে উত্তরটি ভাগ করে নিতে পারি। এক্স-অ্যাস্পনেট-সংস্করণ ঠিক করার জন্য ওয়েবকনফিগ: <সিস্টেম.web> <httpRunটাইম সক্ষম ভার্সনহাইডার = "ভুয়া" /> </ সিস্টেমে.ওয়েব>
ব্রায়ান রেহবেইন

এক্স শিরোলেখ অপসারণটি এটি আমার ওয়েবকনফাইগে রাখে, তাই নিজেকে কিছুটা সময় সাশ্রয় করুন: <system.webServer> <httpProtocol> <কাস্টমহাইডার্স> <অপসারণ নাম = "এক্স-চালিত দ্বারা" "/> << কাস্টমহাইডার্স </ htpProtocol> </system.webServer>
ব্রোম

ব্রোম, এটি সঠিক উত্তর ... আইআইএস for এর জন্য। প্রশ্নটি আইআইএস about সম্পর্কে। আইআইএস on-তে এর কোনও প্রভাব নেই।
অ্যান্টনি

56

সমস্ত কাস্টম শিরোনামগুলি সরিয়ে ফেলতে যা খুব বেশি তথ্য প্রকাশ করে - পদ্ধতিগুলি আইআইএস 7 এর জন্য পরিবর্তিত (দুর্ভাগ্যক্রমে):

শিরোনামের নাম: এক্স-চালিত দ্বারা

যোগ করুন

<httpProtocol>
  <customHeaders>
    <remove name="X-Powered-By" />
  </customHeaders>
</httpProtocol>

মধ্যে <system.webServer>অধ্যায়।

শিরোনামের নাম: সার্ভার

এমন একটি পোস্টমোডুল কার্যকর করুন যা রেসপন্সকে কল করে এই শিরোলেখটিকে সরিয়ে দেয় e এর জন্য অন্য সংস্থান: আইআইএস 7 এ আপনার এএসপি.নেট এমভিসি ওয়েব অ্যাপ্লিকেশনটি বন্ধ করা হচ্ছে

শিরোনামের নাম: এক্স-অ্যাসপনেট-সংস্করণ

ওয়েবকনফিগের HTRunটাইম বিভাগে - সেট করুন:

<httpRuntime enableVersionHeader="false" />

শিরোনামের নাম: এক্স-অ্যাসপনেটএমভিসি-সংস্করণ

গ্লোবাল.এক্সে অ্যাপ্লিকেশন_স্টার্ট ইভেন্ট থেকে - নিম্নলিখিত কোডটি (সি #) চালিত করুন:

MvcHandler.DisableMvcResponseHeader = true;

আমি কেবল কিছু সুনির্দিষ্ট করতে চাই: এর মধ্যে বেশিরভাগ কৌশল কেবলমাত্র আইআইএস> = 7 এর সাথে ইন্টিগ্রেটেড পাইপলাইন মোডে কাজ করবে। ক্লাসিক মোডে এটি সর্বোপরি কিছুই করবে না (<< মুভ> ওয়েবকনফিগের লাইনগুলি) বা একটি ব্যতিক্রম ছুঁড়ে ফেলবে (গ্লোবাল.এক্স্যাক্সে রেসপন্সের সরাসরি কলগুলি H আমি ক্লাসিক মোডে আটকে একটি ওয়েবসাইটে কাজ করছি এবং দুর্ভাগ্যক্রমে আমি এই শিরোনামগুলি সরাতে সক্ষম হইনি।
এফেক্ট করুন

16

এএসপি.এনইটি অ্যাপ্লিকেশনটির ওয়েব কোডফাইগ ফাইলে এটি রাখলে এক্স-এসপনেট-সংস্করণ শিরোনাম থেকে মুক্তি পাওয়া যাবে:

<system.web>
<httpRuntime enableVersionHeader="false" />
</system.web>

নোট করুন যে system.web ট্যাগটি ফাইলে থাকা উচিত। সদৃশ তৈরি করবেন না, কেবলমাত্র httpRunটাইম ট্যাগ যুক্ত করুন। এইচপিআরটাইম ট্যাগটি ইতিমধ্যে বিদ্যমান থাকতে পারে। যদি তাই হয় তবে কেবল বৈশিষ্ট্য যুক্ত করুন বা এর মানটি ইতিমধ্যে উপস্থিত থাকলে সেট করুন।


তবে এটি 'চালিত দ্বারা চালিত' শিরোনামটি ছেড়ে দেয়।
আপক্রিক

কিন্তু যখন আমি system.webআমার ওয়েবসাইটটিতে এই লাইন কোডটি রাখি তখন নীচে যায়। তুমি কি জানো কেন?
নেদা দেরখেশেশ

5

আমার বর্তমান প্রকল্পটির "কঠোর" চক্রটি সবেমাত্র পেরিয়ে গিয়েছিলাম - আমি যে পদ্ধতি নিয়েছিলাম সে সম্পর্কে আমি ব্লগ করেছি, যার মধ্যে নিম্নলিখিত শিরোনামগুলি সরিয়ে ফেলার জন্য একটি এইচটিটিপি মডেল রয়েছে :

সার্ভার,
এক্স-অ্যাস্পনেট-সংস্করণ,
এক্স-অ্যাসপনেট এমভিসি-সংস্করণ, এক্স-পাওয়ারেড
-বাই

প্রাসঙ্গিক টুকরো নীচে পুনরুত্পাদন:

তবে কনফিগারেশনের মাধ্যমে সার্ভার প্রতিক্রিয়া শিরোনাম সরানোর কোনও সহজ উপায় নেই। ভাগ্যক্রমে আইআইএস 7 এর একটি পরিচালিত প্লাগযোগ্য মডিউল অবকাঠামো রয়েছে যা আপনাকে সহজেই এর কার্যকারিতা প্রসারিত করতে দেয়। নীচে HTTP প্রতিক্রিয়া শিরোনামগুলির একটি নির্দিষ্ট তালিকা সরানোর জন্য এইচটিটিপিডমডুলির উত্স রয়েছে:

namespace Zen.Core.Web.CloakIIS
{
    #region Using Directives

    using System;
    using System.Collections.Generic;
    using System.Web;

    #endregion

    /// <summary>
    /// Custom HTTP Module for Cloaking IIS7 Server Settings to allow anonymity
    /// </summary>
    public class CloakHttpHeaderModule : IHttpModule
    {
        /// <summary>
        /// List of Headers to remove
        /// </summary>
        private List<string> headersToCloak;

        /// <summary>
        /// Initializes a new instance of the <see cref="CloakHttpHeaderModule"/> class.
        /// </summary>
        public CloakHttpHeaderModule()
        {
            this.headersToCloak = new List<string>
                                      {
                                              "Server",
                                              "X-AspNet-Version",
                                              "X-AspNetMvc-Version",
                                              "X-Powered-By",
                                      };
        }

        /// <summary>
        /// Dispose the Custom HttpModule.
        /// </summary>
        public void Dispose()
        {
        }

        /// <summary>
        /// Handles the current request.
        /// </summary>
        /// <param name="context">
        /// The HttpApplication context.
        /// </param>
        public void Init(HttpApplication context)
        {
            context.PreSendRequestHeaders += this.OnPreSendRequestHeaders;
        }

        /// <summary>
        /// Remove all headers from the HTTP Response.
        /// </summary>
        /// <param name="sender">
        /// The object raising the event
        /// </param>
        /// <param name="e">
        /// The event data.
        /// </param>
        private void OnPreSendRequestHeaders(object sender, EventArgs e)
        {
            this.headersToCloak.ForEach(h => HttpContext.Current.Response.Headers.Remove(h));
        }
    }
}

আপনি সমাবেশে স্বাক্ষর করেছেন তা নিশ্চিত করুন, তারপরে আপনি এটিকে আপনার ওয়েব সার্ভারের জিএসি তে ইনস্টল করতে পারেন এবং কেবলমাত্র আপনার অ্যাপ্লিকেশনটির ওয়েবকনফাইগের (বা আপনি যদি এটি বিশ্বব্যাপী প্রয়োগ করতে চান তবে মেশিনকনফিগ) -এ নিম্নলিখিত পরিবর্তন করতে পারেন:

<configuration>
    <system.webServer>
        <modules>
            <add name="CloakHttpHeaderModule" 
                 type="Zen.Core.Web.CloakIIS.CloakHttpHeaderModule, Zen.Core.Web.CloakIIS, 
                       Version=1.0.0.0, Culture=neutral, PublicKeyToken=<YOUR TOKEN HERE>" />
        </modules>
    </system.webServer>
</configuration>

2
কনফিগারেশন দ্বারা শিরোনামগুলির প্রজন্মকে দমন করুন শিরোনামগুলি উত্পন্ন করার চেয়ে আরও বেশি বোধগম্য মনে হচ্ছে এবং তারপরে এটি সরিয়ে ফেলুন।
realMarkusSchmidt

1
দেখে মনে হচ্ছে সেই লিঙ্কটি এখন মারা গেছে। :-(
ড্যানি শোয়েমান

2

এই ব্লগটি পরীক্ষা করুন । প্রতিক্রিয়া শিরোনাম সরানোর জন্য কোড ব্যবহার করবেন না। মাইক্রোসফ্ট অনুসারে এটি অস্থির

পরিবর্তে Web.config কাস্টম শিরোনাম বিভাগটি ব্যবহার করুন:

<system.webServer>          
<httpProtocol>
    <!-- Security Hardening of HTTP response headers -->
    <customHeaders>
        <!--Sending the new X-Content-Type-Options response header with the value 'nosniff' will prevent 
                Internet Explorer from MIME-sniffing a response away from the declared content-type. -->
        <add name="X-Content-Type-Options" value="nosniff" />

        <!-- X-Frame-Options tells the browser whether you want to allow your site to be framed or not. 
                 By preventing a browser from framing your site you can defend against attacks like clickjacking. 
                 Recommended value "x-frame-options: SAMEORIGIN" -->
        <add name="X-Frame-Options" value="SAMEORIGIN" />

        <!-- Setting X-Permitted-Cross-Domain-Policies header to “master-only” will instruct Flash and PDF files that 
                 they should only read the master crossdomain.xml file from the root of the website. 
                 https://www.adobe.com/devnet/articles/crossdomain_policy_file_spec.html -->
        <add name="X-Permitted-Cross-Domain-Policies" value="master-only" />

        <!-- X-XSS-Protection sets the configuration for the cross-site scripting filter built into most browsers. 
                 Recommended value "X-XSS-Protection: 1; mode=block". -->
        <add name="X-Xss-Protection" value="1; mode=block" />

        <!-- Referrer-Policy allows a site to control how much information the browser includes with navigations away from a document and should be set by all sites. 
                 If you have sensitive information in your URLs, you don't want to forward to other domains 
                 https://scotthelme.co.uk/a-new-security-header-referrer-policy/ -->
        <add name="Referrer-Policy" value="no-referrer-when-downgrade" />

        <!-- Remove x-powered-by in the response header, required by OWASP A5:2017 - Do not disclose web server configuration -->
        <remove name="X-Powered-By" />

        <!-- Ensure the cache-control is public, some browser won't set expiration without that  -->
        <add name="Cache-Control" value="public" />
    </customHeaders>
</httpProtocol>

<!-- Prerequisite for the <rewrite> section
            Install the URL Rewrite Module on the Web Server https://www.iis.net/downloads/microsoft/url-rewrite -->
<rewrite>
    <!-- Remove Server response headers (OWASP Security Measure) -->
    <outboundRules rewriteBeforeCache="true">
        <rule name="Remove Server header">
            <match serverVariable="RESPONSE_Server" pattern=".+" />

            <!-- Use custom value for the Server info -->
            <action type="Rewrite" value="Your Custom Value Here." />
        </rule>
    </outboundRules>
</rewrite>
</system.webServer>

এটিই ছিল আমার সমস্যার সমাধান। win2008 আর 2 (আইআইএস 7.5)
পাকোগোমেজ

1

আমি নিম্নলিখিত কোড ব্যবহার করি এবং আমার জন্য কাজ করে iis 7.5

protected void Application_PreSendRequestHeaders()
{
    Response.Headers.Remove("Server");
    Response.Headers.Remove("X-AspNet-Version");
    Response.Headers.Remove("X-AspNetMvc-Version");
}

3
আপনার চিত্র এবং সামগ্রী যা কোড পাইপলাইনটি দিয়ে যায় না সে সম্পর্কে কী?
মার্ক সোউল

"সার্ভার" এ আপনি কী রেখেছিলেন? এটা কি এরকম হওয়া উচিত? প্রতিক্রিয়া.হাইডার্স.সামোভ ("সার্ভার: মাইক্রোসফ্ট-আইআইএস / 7.0"); ? বা এটি সার্ভার হওয়া উচিত? দয়া করে সহায়তা করুন
নেদা দেরখেশেশ

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