বসন্ত সুরক্ষায় 'এক্স-ফ্রেম-বিকল্পগুলি' প্রতিক্রিয়া শিরোনাম কীভাবে অক্ষম করবেন?


91

আমার জেএসপিতে সিকেডিটার রয়েছে এবং যখনই আমি কিছু আপলোড করি, নীচের ত্রুটিটি পপ আউট হয়:

 Refused to display 'http://localhost:8080/xxx/xxx/upload-image?CKEditor=text&CKEditorFuncNum=1&langCode=ru' in a frame because it set 'X-Frame-Options' to 'DENY'.

আমি স্প্রিং সিকিউরিটি অপসারণ করার চেষ্টা করেছি এবং সমস্ত কিছুই কবজির মতো কাজ করে। আমি কীভাবে বসন্ত সুরক্ষা এক্সএমএল ফাইল এ অক্ষম করতে পারি? <http>ট্যাগগুলির মধ্যে আমার কী লিখতে হবে


4
নীচের উত্তরগুলির মধ্যে এখনও কোনওরই নিয়ন্ত্রণ করা হয়নি যে নিয়ন্ত্রণকারী পদ্ধতি স্তরে সাম্যুরিজিন বা সমস্ত প্রয়োগ করা সম্ভব - কেউ জানেন?
কালো

উত্তর:


113

ক্লিক জ্যাকিং আক্রমণগুলি X-Frame-Optionsরোধ করতে ডিফল্টরূপে অস্বীকার করা হয়েছে । এটি ওভাররাইড করতে, আপনি আপনার বসন্ত সুরক্ষা কনফিগারেশনে নিম্নলিখিতগুলি যুক্ত করতে পারেন

<http>    
    <headers>
        <frame-options policy="SAMEORIGIN"/>
    </headers>
</http>

নীতির জন্য উপলভ্য বিকল্পগুলি এখানে

  • DENY - একটি ডিফল্ট মান। এটির চেষ্টা করে সাইটটি নির্বিশেষে এটির সাথে পৃষ্ঠাটি কোনও ফ্রেমে প্রদর্শিত হতে পারে না।
  • সমিরিগিন - আমি ধরে নিলাম আপনি এটি যা খুঁজছেন তা হ'ল পৃষ্ঠাটি একই পৃষ্ঠাতে একই ফ্রেমে প্রদর্শিত হবে (এবং হতে পারে)
  • সব থেকে - আপনার একটি উত্স নির্দিষ্ট করার অনুমতি দেয়, যেখানে পৃষ্ঠাটি কোনও ফ্রেমে প্রদর্শিত হতে পারে।

আরও তথ্যের জন্য এখানে একবার দেখুন ।

আর এখানে কিভাবে আপনি হয় এক্সএমএল বা জাভা configs ব্যবহার হেডার কনফিগার করতে পারেন করো।

দ্রষ্টব্য, আপনার প্রয়োজন অনুসারে উপযুক্ত নির্দিষ্ট করার প্রয়োজনও থাকতে পারে strategy


এই httpএবং headersট্যাগগুলির নাম স্থান কী?
পাসুপতি রাজনীকণিক

4
এটি নিয়ামক পদ্ধতি স্তর হিসাবে প্রয়োগ করা সম্ভব?
mad_fox

4
আপনার যদি এটি ওয়েবসিকিউরিটি কনফিগুরির অ্যাডাপ্টারের কনফিগার পদ্ধতিতে কনফিগার করতে হয় তবে নিম্নলিখিত কোডটি লিখুন:http.headers().frameOptions().sameOrigin();
রাসেলহফ

@ ভেটর আমি স্প্রিংয়ের ৩.১ ব্যবহার করি এবং এটি সমর্থিত নয়, আপনার প্রস্তাবিত কোনও কর্মসংস্থান?
বসন্ত

@Spring docs.spring.io/spring-security/site/docs/current/reference/html/... এটা সমর্থিত। আপনি কি চেষ্টা করেছেন এবং কাজ করেননি তা ভাগ করে নিতে পারেন?
ভেটর

105

আপনি যদি এক্সএমএল কনফিগারগুলির পরিবর্তে জাভা কনফিগার ব্যবহার করছেন তবে এটি আপনার WebSecurityConfigurerAdapter.configure(HttpSecurity http)পদ্ধতিতে রাখুন:

http.headers().frameOptions().disable();

35
অক্ষম () ব্যবহার করা একটি বিকল্প তবে এটি যদি একই সার্ভারে থাকে তবে ব্যবহার করুনhttp.headers().frameOptions().sameOrigin();
ইয়ান নিউল্যান্ড

60

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


পুরানো স্প্রিং সুরক্ষা সংস্করণগুলির জন্য:

http
   .headers()
       .addHeaderWriter(new XFrameOptionsHeaderWriter(XFrameOptionsHeaderWriter.XFrameOptionsMode.SAMEORIGIN))

স্প্রিং সিকিউরিটি 4.0.2 এর মতো নতুন সংস্করণগুলির জন্য :

http
   .headers()
      .frameOptions()
         .sameOrigin();

স্প্রিং ৩.২.১২ এ এটি কীভাবে কনফিগার করবেন?
পাসুপতি রাজনীকণিক

4
3.X থেকে 4.X এ স্থানান্তরিত হয়েছে এবং এটি প্রথম উদাহরণের উপর ভিত্তি করে কেবল সংযোজন করায় এটি চলে গেছে। ধন্যবাদ.
স্টিভ

18

এক্সএমএল কনফিগারেশন ব্যবহার করে আপনি ব্যবহার করতে পারেন

<beans xmlns="http://www.springframework.org/schema/beans" 
       xmlns:security="http://www.springframework.org/schema/security"> 
<security:http>
    <security:headers>
         <security:frame-options disabled="true"></security:frame-options>
    </security:headers>
</security:http>
</beans>

11

আপনি যদি স্প্রিং সিকিউরিটির জাভা কনফিগারেশন ব্যবহার করেন তবে সমস্ত ডিফল্ট সুরক্ষা শিরোনাম ডিফল্টরূপে যুক্ত হয়। তারা নীচে জাভা কনফিগারেশন ব্যবহার করে অক্ষম করা যেতে পারে:

@EnableWebSecurity
@Configuration
public class WebSecurityConfig extends
   WebSecurityConfigurerAdapter {

  @Override
  protected void configure(HttpSecurity http) throws Exception {
    http
      .headers().disable()
      ...;
  }
}

9

আপনি যদি স্প্রিং বুট ব্যবহার করেন তবে স্প্রিং সিকিউরিটি ডিফল্ট শিরোনাম অক্ষম করার সহজ উপায় হ'ল security.headers.*বৈশিষ্ট্যগুলি ব্যবহার করা। বিশেষত, আপনি যদি X-Frame-Optionsডিফল্ট শিরোলেখ অক্ষম করতে চান তবে নিম্নলিখিতটি আপনারটিতে যুক্ত করুন application.properties:

security.headers.frame=false

রয়েছে security.headers.cache, security.headers.content-type, security.headers.hstsএবং security.headers.xssবৈশিষ্ট্য যে আপনি ব্যবহার করতে পারেন। আরও তথ্যের জন্য, একবার দেখুন SecurityProperties


4
স্প্রিং বুট ২.x এ এই পদ্ধতিটি অবচয় করা হয়েছে। "সুরক্ষা অটো-কনফিগারেশন আর কাস্টমাইজযোগ্য নয় instead
mrkernelpanic
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.