XPL One-Time Text Share to prosta i bezpieczna aplikacja webowa umożliwiająca jednorazowe udostępnianie tekstu. Użytkownicy mogą stworzyć link do tekstu, który po jednokrotnym odczytaniu zostaje automatycznie usunięty.
- Jednorazowe udostępnianie tekstu
- Opcjonalna ochrona PIN-em
- Automatyczne usuwanie wiadomości po odczytaniu
- Sanityzacja HTML w celu zapobiegania atakom XSS
- Proste i intuicyjne interfejsy użytkownika
- API do integracji z innymi aplikacjami
- Node.js (wersja 14 lub nowsza)
- npm (zwykle dostarczany z Node.js)
-
Sklonuj repozytorium:
git clone https://github.com/MateuszSychXpl/onetime.git cd onetime -
Zainstaluj zależności:
npm install
-
Uruchom serwer:
npm start -
Otwórz przeglądarkę i przejdź pod adres
http://localhost:3000
- Na stronie głównej wpisz tekst, który chcesz udostępnić.
- Opcjonalnie dodaj PIN do zabezpieczenia wiadomości.
- Kliknij "Generate Link" aby utworzyć link do udostępnienia.
- Skopiuj wygenerowany link i wyślij go odbiorcy.
- Odbiorca może otworzyć link tylko raz, aby zobaczyć wiadomość.
Aplikacja udostępnia API REST do integracji z innymi aplikacjami:
- Metoda: POST
- Endpoint:
/api/share - Dane wejściowe:
{ "text": "Treść wiadomości", "pin": "Opcjonalny PIN" } - Odpowiedź:
{ "id": "ID wiadomości", "link": "Link do odczytu wiadomości" }
- Metoda: GET
- Endpoint:
/api/view/:id - Odpowiedź dla wiadomości bez PIN-u:
{ "message": "Treść wiadomości" } - Odpowiedź dla wiadomości z PIN-em:
{ "pinProtected": true }
- Metoda: POST
- Endpoint:
/api/view/:id - Dane wejściowe:
{ "pin": "PIN do wiadomości" } - Odpowiedź:
{ "message": "Treść wiadomości" }
- Wiadomości są przechowywane w pamięci i usuwane po odczytaniu.
- Tekst jest sanityzowany, aby zapobiec atakom XSS.
- Używamy helmet.js do poprawy bezpieczeństwa HTTP.
- PIN-y są haszowane przed zapisaniem.
Aby uruchomić testy:
npm test
Lista planowanych funkcji do implementacji:
- Wygasanie wiadomości po określonym czasie
- Szyfrowanie end-to-end
- Powiadomienia e-mail
- Podgląd wiadomości przed wysłaniem
- Obsługa formatowania tekstu (Markdown lub WYSIWYG)
- Wsparcie dla wielu języków
- Statystyki dla nadawcy (czy wiadomość została odczytana)
- Załączniki
- Generowanie QR kodów dla linków
- Tryb ciemny
- Możliwość anulowania/usunięcia wiadomości przez nadawcę
- Ograniczenie liczby prób wpisania PIN-u
- Integracja z popularnymi komunikatorami
- ✓ Wersja API (zaimplementowane)
- Śledzenie historii wysłanych wiadomości dla nadawcy
Ten projekt jest licencjonowany na podstawie licencji MIT. Zobacz plik LICENSE po więcej szczegółów.
Mateusz Sych
Wkłady są mile widziane! Proszę zapoznać się z CONTRIBUTING.md po więcej szczegółów.