Kaynağa Gözat

Don't send session cookies in static files

pull/65/head
Ben Kurtovic 5 ay önce
ebeveyn
işleme
ca24db7cd0
1 değiştirilmiş dosya ile 11 ekleme ve 6 silme
  1. +11
    -6
      src/copyvios/__init__.py

+ 11
- 6
src/copyvios/__init__.py Dosyayı Görüntüle

@@ -3,20 +3,25 @@ import logging
import os import os
from logging.handlers import TimedRotatingFileHandler from logging.handlers import TimedRotatingFileHandler


from flask import Flask, Response, request
from flask import Flask, request
from flask.sessions import SecureCookieSessionInterface, SessionMixin


class CopyviosSessionInterface(SecureCookieSessionInterface):
def should_set_cookie(self, app: Flask, session: SessionMixin) -> bool:
if request.endpoint == "static" and request.args.get("v"):
return False
return super().should_set_cookie(app, session)




class CopyviosFlask(Flask): class CopyviosFlask(Flask):
session_interface = CopyviosSessionInterface()

def get_send_file_max_age(self, filename: str | None) -> int | None: def get_send_file_max_age(self, filename: str | None) -> int | None:
if request.args.get("v"): if request.args.get("v"):
return 365 * 24 * 60 * 60 return 365 * 24 * 60 * 60
return super().get_send_file_max_age(filename) return super().get_send_file_max_age(filename)


def send_static_file(self, filename: str) -> Response:
response = super().send_static_file(filename)
response.headers.pop("Set-Cookie", None)
return response



app = CopyviosFlask( app = CopyviosFlask(
"copyvios", "copyvios",


Yükleniyor…
İptal
Kaydet