Permettere a qualcuno di vedere l'aspetto / html / javascript delle pagine di amministrazione è un rischio per la sicurezza?

3

Ok, considera lo scenario in cui hai due progetti, uno è un'API RESTful e l'altro è un sito web pubblico.

L'API utilizza l'autenticazione basata su cookie / token e contiene tutta la logica della tua applicazione.

Il sito Web è costruito utilizzando una tecnologia MV * lato client, ciò che può o non può fare è basato sul ruolo dell'utente autenticato dall'API.

Ospitare HTML / JS / CSS del sito Web senza introdurre un terzo framework MVC è più veloce (e più economico).

Ad esempio, puoi avere l'API RESTful (magari costruita con Django) e un server che serve HTML / JS / CSS così com'è (diciamo che è Apache), o un'API RESTful e il sito Web stesso utilizza una tecnologia MVC lato server (come .net MVC) che limita l'accesso a HTML / CSS / JS in base al ruolo utente fornito dall'API.

Questo rallenterà le cose, ma è più sicuro? Vale la pena il sovraccarico di non consentire a qualcuno di attraversare il proprio codice lato client disponibile pubblicamente per non essere in grado di vedere come appaiono le pagine di amministrazione e quali endpoint API chiamano e come li chiamano, o è questa sicurezza attraverso l'oscurità?

Sicuramente un determinato utente malintenzionato potrebbe capirlo comunque usando uno strumento come il violinista mentre sfoglia le tue pagine pubbliche e poi analizza la tua API con un altro strumento?

Grazie

    
posta JMK 03.07.2014 - 01:32
fonte

2 risposte

2

Non me ne preoccuperei. Immagina in questo modo: se usi, per esempio, django.contrib.admin , tutti sanno come sono le pagine di amministrazione. È un rischio per la sicurezza? Non se le richieste vengono correttamente autenticate e autorizzate.

Potresti voler fare in modo che le pagine stesse non espongano informazioni che preferiresti mantenere segrete o sarebbero utili in ingegneria sociale, come "per reimpostare la password di un utente, chiama l'help desk interno al 212-555- 4240 ".

    
risposta data 03.07.2014 - 02:01
fonte
1

quello che David ha detto, più

  • assicurati che nessuno possa attraversare / esplorare la tua cartella con contenuto statico, tramite un index.html vuoto all'interno di ogni cartella o

    # apache
    
    <Directory /path/to/stuff>
      Options -Indexes
    
    </Directory>
    
    # nginx
    server {
      ... 
      autoindex off;
      ...
    
    }
    

sidenote / rant:

quando si serve il contenuto statico in un ambiente distribuito preferisco sempre nginx su apache per motivi puramente prestazionali; è molto più veloce (ordine di grandezza) mantenere una memoria / cpu-footprint molto bassa quando è sotto carico. se non ci credi, fai alcuni perf-test con semplici file e fatti impressionare:)

se gestisci un sistema multi-tier / server - ti consiglio di entrare in questi nuovi server reverse-proxy, potrebbe essere nginx, varnish o ha-proxy (tutti differiscono per il loro ambito operativo)

    
risposta data 03.07.2014 - 07:40
fonte

Leggi altre domande sui tag