Hej, ostatnio miałem trochę czasu, a rozwój aplikacji poszedł do przodu pod względem samego bezpieczeństwa, naprawy błędów i drobnych ulepszeń. W międzyczasie stworzyłem również stronę główną projektu: https://marcio199226.github.io/mchat-site/public/
Zastosowałem się do niektórych rad, przede wszystkim tych od @msm, między innymi:
Przykładowo, tak wygląda wysyłana wiadomość:
{
"fromUser": "ubuntu",
"toUser": "65aa543b898ef0c9651d2b16",
"metadata": "757e319359aa916af7c51160c85b735745af557cb4095eb2f09c8e40ddefa16fd32a033a1ca47595f45b60d5fae2694402c2746c09a1b2c9e827a9dab52ed45b757d696c3a84acb036572b2c4429d677196b0a40c3790330b97537ec53022276b4ca23764c875b6560542009d663c95374bd041fe0d2320ca7b28126cc2d59c9d20758b411c8bee44ada75afcf80f500da6786f0147b29cc5dd09f2a68cbf67f4449229a0f225ddc856fb0bc82826e90ba8bef9c8199703eb29331b1f57cae59d746b0565cadd2fd0209e7d4857f591d6c500ce002334b3d9488c29f3bf945114cc508f64125a69ce02f0ce7d50569f2949e2abdae90ccdce705788af4b8da8f8b3426038bdae7d6536b8051f0673adc95698e6ca90b0b8c2ea89f27d7a0042de78af003e3af5f323854222928e25c64f94c5b934080f7f253ad6e9cb9675fa4cff677419152b7cf7190209841b23badf160e36575728ad94c8d223922b881a28c68e25c73406d1ca3bb41de6b91adbedd307eb9d46103c0147a8700b9e5959ff0bb4ffcbe788d1ecb095e2bd9ed402ba89c284e1e6ca61c96590712258b899664492d030d0b6066aa377d76739a898f92daf15222205c185e5335a87d8a0d8ea52af1a21cd5d8334a9fcc4de6418a63499bf610a274dc2fea409e68a36765e32c518cf28d39b6c05d0bc009563704715c7146685b18499e07ca60e53d222bb7138ae4796e3e81260ac947c97cb8cdcc82faa2fd562c951d65243732fd412d1636f5467b8b979dab6fed2134cbb89096cdccb5c64a604c5f04e1bc374e12cedc425d7128d03b6c9e5ea6ef277c3ee82e7b79743dc6ba3520782dcffb6439debbab109736c83332cd97766edfcf43a385f0e8e2bc72216f1414357a4c6862f4880e7fdcd0463f6e916180a224e778119756abb402236890dac60bee1f5cb514923cab84035cad3d104cd2b47620c4427903b795357936a08a121584546b6ee3193b6eb1f07f35e504ac5dbd70ff41e0c12658a8d4e594388697a8869b85293eacf257750caaaf3f82d32b871dfe1569dec501736b7788d033687d680b9532e32ef80722721c0d788d74f57c0b7b06c44759b9865db109e8108f91353498821d4cad60c487a1f4993f1c5a224c18bd58e4b3f0c3a1ddafd0dcf61512b81d5a04e298cddc97a405efa09bb9fbd88e950ac44f6bf9476246b655da697ca9562943383bef54e26c327ff495c669fac139989d57f70ea0d0cd914dc07f24240830e1f0153e4de9925c9eaccd788ddfa3dcf4328b70636c43413538aec3d8ed62f28b299b1321aacf634c9f0c5e5018597aa50bbf32d0aa93abeb4df0177cc4fb206e406ec9198e857348eeb0788402e24e637c06f8d04da30eb1c294c56ca8cfd098267ec8a4f3563ca273c9cefee6989f985652c817fb9e6fd9fa3eee1c0a5f4e085fb8d2037116cfe92190c7afb3ba377bdd662587ed107feb054d896f8a5d6af804e6fca038d2416d80cb95ad0435820ec3d79a8e5d8f8907c0ef93f3a7d8b306ee999421d9d4037868ebdbf036d5eeba7490fc3663f8f21894fde7c9f85360a335643a98f386301619954818539ee3413db8b17eb99997f863bc93aefd87b4b8c7999eca4160b1d8b3c41e656629c559f7fe9f52a039c12d179e185c8aa97d1196a5776033318bc562a11658c51f329a3d252773a06a8c0f7f401cc7539769fc081f0b6fc460b3b2c3784bd422902918298b9ef5464665ec151dd664e12c08ac4c0ebb46ef4f659459be6128911391237bab1013ece33a3c722fcd4d0d01dc4788c37219d51ac22d66ad9011c77f746d4bb15e4d7ba81fce8a803cf3b8f089f481c61949178f0c8f2f85d0021d8d318e705451cc045bad271e65521f8df3f1f968dbd1e1b9e41c0715122bbf2998692d12f0a83d9b96fad42c66975ef7e73fa3bb4828529152b1e9a282af0bee6e240d061742254527ca3f07c9ec624980caaf42c965866abf18f2c6e240b2c3aad8b98f40872b4ef4464768cf3fd582e32fd9a11ba937e039b3e9f2b489b0d1927d72aae6726e58454e02fe635b90d754cdee2e1b4170581bfd7b33a6505a9aea7606720a8f3141e76e53dc05e3be219f0e0725a788b2a7858653713bd303d0bc0ea549c02f9f64b142853fc81d8dea8f73cc82aa8d34d50a1e31c7e688adcea4014e7e1c5b9440b390d773415f5bba9d5ab93fc617c2ad3c5b246acbf4b3a4f8cf2feed39d3e574ed19477c1dd99bb03483808eacdf818"
}
Niestety, póki co nie wpadłem na pomysł, jak ukryć dane "from/to". Być może będę robił wyszukiwanie użytkowników za pomocą sha256 klucza publicznego RSA. Zobaczymy.
Roadmap:
jesli ktos chcialby mi zrobic powazny ddos majac jakas duza siec botnet nie widze problemu server pojdzie down i tyle, zreszta hostingi maja anty ddsowe rozwiazania wiec sami blokuja ip z ktorych ewentualnie wykryja ddos nie trzeba sie nawet przejmowac tym po stronie aplikacji. nie jest to system ktory musi miec SLA 100% :)
Temat bezpieczeństwa API to temat rzeka, o którym można by napisać książkę. Na sam początek myślę, że wystarczy artykuł. W podlinkowanym artykule przedstawiłem wybrane aspekty bezpieczeństwa API, z naciskiem na REST API oparte na protokole HTTP.
W artykule zawarłem opis popularnych błędów, występujących podatności i dobrych praktyk, które poznałem w trakcie swojej programistycznej kariery.
Bezpieczeństwo API jest równie ważne co design i przydatność biznesowa. Sprawdź, o jakie aspekty bezpieczeństwa API należy zadbać.
https://devszczepaniak.pl/bezpieczenstwo-api/W swojej pracy praktycznie codziennie spotykam się z JSON Web Tokenami. Mimo że używam ich tak często, to jak dotąd nie miałem okazji usystematyzować i poszerzyć mojej wiedzy o nich. W najnowszym artykule nadrobiłem ten błąd i przygotowałem mega pigułę wiedzy o JWT. W artykule dowiesz się o najważniejszych aspektach, pułapkach jakie, w nim czyhają na nieostrożnych programistów oraz dostaniesz garść przydatnych wskazówek jak lepiej pracować z JSON Web Tokenami. Dowiesz się, co stoi za trzyliterowymi skrótami występującymi z JWT, czyli JWS, JWE czy JWK.
Zebrałem przydatne informacje i ciekawostki, które mogą umknąć przy codziennym korzystaniu z JWT. Przebrnąłem przez RFC, abyś Ty nie musiał(a)
JSON Web Token (JWT) to standard służący do wymiany danych między podmiotami. W artykule dowiesz się wszystkiego, co warto o nim wiedzieć.
https://devszczepaniak.pl/json-web-token/Znowu Alab, czytaj Januszex:
https://zaufanatrzeciastrona.pl/post/wyniki-badan-medycznych-kilkudziesieciu-tysiecy-polakow-ujawnione-przez-wlamywaczy/
Jak myślicie, jakby jakiś Janusz poszedł siedzieć, to pozostałe Janusze przyłożyłyby się do bezpieczeństwa?
jakby taki ALAB miał ubezpieczenie to by im zapłacili okup i rozeszłoby się po kościach.
- gdyby im zapłacili okup to pewnie po jakimś czasie hakerzy by wrócili i zażądali kolejnego. artykuł podaje: Jak donoszą czytelnicy, ALAB miał już wcześniej incydent ransomware – tak wynika z komunikatu z roku 2018. Po tamtym incydencie wdrożono rozliczne dodatkowe procedury bezpieczeństwa.
incydent to: https://www.alablaboratoria.pl/19843-komunikat
CVE-2022-35737, an arbitrary code execution vulnerability in SQLite, affects all versions released in the past 22 years.
https://blog.trailofbits.com/2022/10/25/sqlite-vulnerability-july-2022-library-api/
@Wypierdzistyy: Napisałeś, że nie podadzą alternatywnego rozwiązania i do tego się odniosłem
@anonimowy: sorry pijany jestem, wychodzi podobnie jedynie są lepsze algorytmy w szeregowaniu danych i dostępie do nich. Plik się kojarzy z danymi bez żadnych algorytmów takich surowych, a też można z algorytmem zapisywać w jakiś sprytny sposób.
https://thehackernews.com/2022/09/15-year-old-unpatched-python.html
15 letni błąd bezpieczeńeństwa w Pythonie dalej nie załatany
A 15-year-old unpatched Python vulnerability potentially affects as many as 350,000 open source projects, leaving them vulnerable to code execution at
https://thehackernews.com/2022/09/15-year-old-unpatched-python.htmlProcesory rodziny 8086 (starsze, jak 8085/Z80 zresztą też) mają osobne, szybsze, instrukcje do tego celu.
naprawde uważasz że współczesny kompilator/interpreter da radę zaminić ++i
na inc i
, a nie da rady zamienić i+=1
na inc i
?
inc reg/mem czy add reg/mem zabierają tyle samo cykli procesora może add tylko zabiera więcej pamięci, bo musimy przechowywać jeszcze liczbę stałą, która będzie dodana, ale za to możemy dodać nie tylko 1, ale też inną wartość, ale jest ona przechowywana jako instrukcja więc nie trzeba z jakiegoś dodatkowego miejsca wczytywać.
Czyli homeopatyczne zabiegi :D Jesli miałbyś prawdziwy atak na taki system, to tego typu zabiegi spowodują tylko podniesienie progu od którego system osiągnie limity przepustowości. W praktyce atakujący zwykle mają spory zapas, więc i tak im to nie przeszkodzi.