FixVibe
Covered by FixVibemedium

Next.js უსაფრთხოების სათაურის არასწორი კონფიგურაცია next.config.js-ში

Next.js აპლიკაციები, რომლებიც იყენებენ next.config.js-ს სათაურის მართვისთვის, ექვემდებარება უსაფრთხოების ხარვეზებს, თუ ბილიკების შესატყვისი შაბლონები არაზუსტია. ეს კვლევა იკვლევს, თუ როგორ იწვევს wildcard-ის და regex-ის არასწორ კონფიგურაციას მგრძნობიარე მარშრუტებზე უსაფრთხოების სათაურების ნაკლებობა და როგორ გაამკაცროს კონფიგურაცია.

CWE-1021CWE-200

გავლენა

გამოტოვებული უსაფრთხოების სათაურები შეიძლება გამოყენებულ იქნეს დაწკაპუნების შეკვრის, საიტის სკრიპტირების (XSS) შესასრულებლად ან სერვერის გარემოს შესახებ ინფორმაციის მოსაგროვებლად [S2]. როდესაც სათაურები, როგორიცაა Content-Security-Policy (CSP) ან X-Frame-Options არათანმიმდევრულად გამოიყენება მარშრუტებზე, თავდამსხმელებს შეუძლიათ მიმართონ კონკრეტული დაუცველი ბილიკების გვერდის ავლით მთელი საიტის უსაფრთხოების კონტროლის ZXETOKVFIXXB.

ძირეული მიზეზი

Next.js დეველოპერებს საშუალებას აძლევს დააკონფიგურირონ პასუხის სათაურები next.config.js-ში headers თვისების [S2]-ის გამოყენებით. ეს კონფიგურაცია იყენებს ბილიკის შესატყვისს, რომელიც მხარს უჭერს ველურ ბარათებს და რეგულარულ გამონათქვამებს [S2]. უსაფრთხოების ხარვეზები, როგორც წესი, წარმოიქმნება:

  • არასრული ბილიკის დაფარვა: Wildcard-ის შაბლონები (მაგ., /path*) შეიძლება არ მოიცავდეს ყველა განზრახ ქვემარშრუტს, რის გამოც ჩადგმული გვერდები დარჩება უსაფრთხოების სათაურების გარეშე [S2].
  • ინფორმაციის გამჟღავნება: ნაგულისხმევად, Next.js შეიძლება შეიცავდეს X-Powered-By სათაურს, რომელიც ავლენს ჩარჩო ვერსიას, თუ ცალსახად არ არის გამორთული poweredByHeader კონფიგურაციის ZXCVECV2.
  • CORS არასწორი კონფიგურაცია: არასწორად განსაზღვრულმა Access-Control-Allow-Origin სათაურებმა headers მასივში შეიძლება დაუშვას ჯვარედინი წარმოშობის არაავტორიზებული წვდომა სენსიტიურ მონაცემებზე ZXCVEN2FIXXVIBET.

ბეტონის შესწორებები

  • აუდიტის ბილიკის ნიმუშები: დარწმუნდით, რომ ყველა source შაბლონი next.config.js-ში გამოიყენებს შესაბამის სიმბოლოებს (მაგ., /:path*) სათაურების გლობალურად გამოსაყენებლად, სადაც საჭიროა next.config.js.
  • თითის ანაბეჭდის გამორთვა: დააყენეთ poweredByHeader: false next.config.js-ში, რათა თავიდან აიცილოთ X-Powered-By სათაურის გაგზავნა [S2].
  • შეზღუდეთ CORS: დააყენეთ Access-Control-Allow-Origin კონკრეტულ სანდო დომენებზე და არა ველურ ბარათებზე headers კონფიგურაციაში [S2].

როგორ ამოწმებს მას FixVibe

FixVibe-ს შეუძლია შეასრულოს აქტიური კარიბჭე ზონდი აპლიკაციის ცოცვით და სხვადასხვა მარშრუტების უსაფრთხოების სათაურების შედარებით. X-Powered-By სათაურის და Content-Security-Policy-ის თანმიმდევრულობის ანალიზით სხვადასხვა ბილიკის სიღრმეში, FixVibe შეუძლია განსაზღვროს კონფიგურაციის ხარვეზები next.config.js-ში.