cookies - टॉमकैट 7 सत्रीय कुकी केवल http-अक्षम और सुरक्षित अक्षम करती है




tomcat7 session-cookies (2)

मेरे पास एक वेब एप्लिकेशन है जो टॉमकैट 7 सर्वर पर चल रहा है। सत्र आईडी के साथ कुकी डिफ़ॉल्ट रूप से HttpOnly Secure और Secure । मैं JSESSIONID कुकी के लिए इस झंडे को अक्षम करना चाहता हूं। लेकिन यह काम नहीं करेगा। मैंने इसे अपनी web.xml फ़ाइल में बदल दिया है लेकिन यह काम नहीं कर रहा है।

<session-config>
    <session-timeout>20160</session-timeout>
    <cookie-config>
        <http-only>false</http-only>
        <secure>false</secure>
    </cookie-config>
</session-config>

मुझे पता है कि यह एक सुरक्षा जोखिम है क्योंकि एक हमलावर कुकी चुरा सकता है और सत्र को हाइजैक कर सकता है अगर उसे xss vuln मिल गया है।

JSESSIONID कुकी को HTTP और HTTPS और AJAX अनुरोधों के साथ भेजना चाहिए।

संपादित करें:

मैंने conf/context.xml फ़ाइल में निम्न विकल्प जोड़कर सफलतापूर्वक ध्वज को अक्षम कर HttpOnly :

<Context useHttpOnly="false">
....
</Context>

अपाचे के ऊपर जॉर्ज पॉवेल के समाधान के अलावा, यदि आप आईआईएस पर हैं, तो आप इसे निम्नानुसार हल कर सकते हैं:

  1. आईआईएस यूआरएल रिवाइट मॉड्यूल स्थापित करें
  2. अपने web.config में निम्नलिखित जोड़ें

<rewrite>
  <outboundRules>
    <rule name="RemoveSecureJessionID">
      <match serverVariable="RESPONSE_Set-Cookie" pattern="^(.*JSESSIONID.*)Secure;(.*)$" />
      <action type="Rewrite" value="{R:1}{R:2}" />
    </rule>
  </outboundRules>
</rewrite>

यह समाधान पीट फ्रीटाग के ब्लॉग से था

जैसा ऊपर बताया गया है, हाल ही में क्रोम अपडेट (जनवरी 2017) के बाद से, यह एक मुद्दा बन गया है।


मुझे टॉमकैट में इसका कोई समाधान नहीं मिला, लेकिन यदि आप रिवर्स प्रॉक्सी के रूप में अपाचे का उपयोग कर रहे हैं तो आप कर सकते हैं:

Header edit* Set-Cookie "(JSESSIONID=.*)(; Secure)" "$1"

mod_headers साथ जो सुरक्षित ध्वज को हटाने के लिए शीर्ष पर हेडर को mod_headers कर देगा। सुंदर नहीं है लेकिन यह महत्वपूर्ण है अगर काम करता है।





cookie-httponly