È un punto debole poter vedere lo scripting lato server?

2

Le lingue come Cold Fusion e PHP sono meno sicure perché sono incorporate nell'HTML che viene inviato a un client? Qualcuno mi ha detto che sono meno sicuri perché mancano di astrazione.

CHIARIMENTO: per astrazione penso che il mio amico intendesse dire che l'HTML inviato è giusto nel file PHP / Cold Fusion, quindi non è come se l'HTML fosse astratto dallo script in quel senso. A proposito, il commento era più diretto verso Cold Fusion che su PHP (ma suppongo che sia lo stesso dato che PHP può essere inserito nell'HTML che viene inviato).

    
posta Celeritas 29.08.2012 - 07:45
fonte

2 risposte

9

Non sono sicuro di come affrontare al meglio la tua domanda, oltre a dire "no, non è un problema di sicurezza". L'astrazione non ha niente a che fare con questo. Non sono sicuro di cosa intendesse il tuo amico, ma PHP fa ha astrazione (classi, ereditarietà, ecc.) E non ti richiede di incorporare qualsiasi HTML in la tua pagina. I siti PHP moderni tendono ad avere un livello dati, un livello logico (generalmente facilitato da un insieme di classi che rappresentano oggetti virtuali sul sito) e un livello di presentazione. Probabilmente CF ha costrutti simili.

Una cosa che noterò (anche se non posso parlare per CF) è che è notoriamente facile scrivere codice PHP terribile, in parte perché è così indulgente, e in parte perché la maggior parte dei tutorial non copre i requisiti di sicurezza di base .

Tuttavia, ecco alcuni motivi per cui PHP è considerato "insicuro" da alcuni:

  • La giocoleria di tipo silenzioso porta a errori logici difficili da individuare.
  • La configurazione predefinita perde informazioni (visualizza errori, php_info e exec abilitate, ecc.)
  • I tutorial per MySQL hanno una pesante dipendenza su mysql_query con concatenazione di stringhe, piuttosto che query parametrizzate con PDO o MySQLi.
  • Nessuna funzione di filtro di output integrata per XML, JavaScript, ecc. Anche le API per l'output sicuro in HTML non sono chiare e semplici.

Tuttavia, nessun codice PHP viene trasmesso al client in qualsiasi momento . È interamente lato server. Esegue sul server e genera un risultato, che di solito è HTML.

Non fraintendermi - in realtà mi piace il PHP. È facile da usare e (nonostante le sue stranezze) può scalare abbastanza bene. Il problema è che è troppo facile per scrivere codice. PHP rende estremamente facile introdurre XSS, CSRF, LFI, RFI, SQLi, ecc. Nel codice, poiché non documentano i potenziali rischi insieme al riferimento API, né forniscono modi ovvi e standardizzati per affrontare i problemi di sicurezza.

Il mio ultimo punto è questo: le lingue non sono intrinsecamente insicure. Alcuni potrebbero rendere facile la scrittura di codice errato ma, alla fine, è lo sviluppatore a creare l'insicurezza, non la lingua.

    
risposta data 29.08.2012 - 08:11
fonte
6

Non vengono inviati al cliente. I tag possono essere incorporati in HTML sul server, ma non sono inclusi in ciò che viene inviato al client (a meno che il server non sia configurato correttamente).

Puoi scrivere codice sicuro o non sicuro in qualsiasi lingua. Faresti meglio a spendere il tuo tempo nella ricerca di attacchi comuni come lo scripting cross-site e SQL injection e assicurandoti di evitarli.

    
risposta data 29.08.2012 - 08:06
fonte

Leggi altre domande sui tag