javascript - Cum să securizez codul meu în Angular2?
Imaginează-ți că ai o aplicație care are o interfață de administrare complexă cu multe funcții interesante și o interfață simplă pentru utilizator, ca un singur buton. Știu că îmi pot restricționa accesul la URL-urile mele (componente), bazându-mă pe ceva (cheie, hash sau orice altceva). Ceea ce vreau să realizez este: Dacă backend-ul decide că sunt un utilizator obișnuit - trimite doar aplicația mică (cu o singură componentă, de exemplu cu un buton) și utilizatorul nu primește codul tuturor componentelor complexe ale aplicației (toate funcțiile site-ului). Astfel nu va putea analiza JavaScript-ul meu de administrare. Dacă backend-ul decide că sunt personal - front-end-ul ar trebui să primească toate componentele necesare personalului. Dacă sunt administrator, ar trebui să primesc toate componentele.
Răspuns #1
Întrebarea este:
Ai nevoie cu adevărat de asta?
Modelul general este să trimiți întregul fișier js împachetat (poți să-l ofuschezi, să-l minifici etc.), dar acesta va include în continuare șabloanele și codul pe care l-ai implementat. În cele mai multe cazuri, nu este o problemă deoarece nu există date sensibile. Ideea este să securizezi corespunzător endpoint-urile API REST.
Dacă ți-ai fi dorit cu adevărat
Poți folosi, de exemplu, webpack sau orice alt sistem de împachetare care îți va permite să creezi pachete separate și va încărca fragmentul corect de cod doar când este necesar (de exemplu, după autentificarea reușită). Aici ai încărcarea asincronă webpack. Această resursă va fi protejată de serverul de găzduire (va necesita utilizator autorizat - la fel ca apelurile API REST).