docentYT / Librus-srednia

Wtyczka do przeglądarek wyświetlająca średnią ocen, mimo że administrator szkoły wyłączył tę funkcjonalność.
3 stars 0 forks source link

wywalić debugowanie na "prodzie" #11

Closed EnterVPL closed 1 year ago

EnterVPL commented 1 year ago

Wybacz, ale musiałem gdy to zobaczyłem: https://github.com/docentYT/Librus-srednia/blob/98023df7b002424dd0e94de7e25de2c0124ed272/extensions/combined/src/przegladaj_plan_lekcji/nextWeekAtWeekend.js#L3

Wiem, że uciążliwe może być ciągłe szukanie w plikach gdzie miejsca debugowania, ale możesz po prostu zrobić własną funkcję do logowania, która będzie używać console.log (albo możesz nawet spróbować przeciążyć console.log) i dodać w środku if, którym sprawdzasz środowisko rozszerzenia czy jest DEV czy jest PROD (można użyć pewnego rodzaju enum). Jeśli jest to DEV no to logi działają, a jeśli PROD no to pomija logowanie i ju. Wtedy gdy się zapomnisz to zmienisz tylko środowisko z DEV na PROD i po problemie będzie

console.logi mogą być użyte do kradnięcia danych przez np. inne wtyczki (chociaż sposobów pewnie jest więcej).

docentYT commented 1 year ago

Wielkie dzięki za Twój komentarz! Czy mógłbyś rozwinąć bądź podać jakiś link gdzie będę mógł poczytać w jaki sposób console logi mogą być użyte do kradnięcia danych? Rozumiem, że jest problem jak jakieś istotne dane wyprintuje ale akurat w tym przypadku istnieje jakieś zagrożenie? No bo to wyświetla tylko htmla ze strony którą każdy kto chciałby ze strony coś ukraść może bez problemu pobrać.

EnterVPL commented 1 year ago

Z tego co widzę każdy artykuł który znalazłem mówi o ryzyku natomiast nie piszą co to jest dokładnie. Zostaje tylko mi wyobrażenie, że dane wystawione publiczne poza percepcją użytkownika są narażone na kradzież. Może też źle szukałem (za mało ogólnie), bo tylko pod sam JS. Może gdy spróbujesz sam poszukać ogólnie o logach, dlaczego nie powinno się ich zostawiać to coś znajdziesz.

Natomiast znalazłem coś co jednak może cię zainteresować. Chodzi o to, że console.log wpływa na wydajność aplikacji i najlepiej jest je usunąć, aby poprawić tą wydajność. Najprościej można nadpisać metodę console.log przed pierwszym użyciem na pustą funkcję i to powinno załatwić sprawę https://dev.to/drsimplegraffiti/remove-consolelog-from-production-mode-4d8i https://medium.com/@hfally/deactivate-console-log-on-production-why-and-how-d0345abbe71

docentYT commented 1 year ago

Rozwiązane w https://github.com/docentYT/Librus-srednia/commit/06ec62365030f4dc014709e6d2401f4005f3e1d7