In che modo scrivere la parte della transazione in Java può giovare alla sicurezza dell'applicazione, quando tutte le altre parti vengono scritte in PHP?

7

Un mio amico mentre lavoravo su un'applicazione PHP mi ha chiesto di scrivere una parte dell'applicazione in Java. La parte che ha coinvolto le transazioni. Ha detto che sarà meglio scrivere questa parte in Java. Ha parlato di quanto sarà sicuro!

Anche se ero troppo occupato per aiutarlo, voglio conoscere l'essenza di questa idea. Perché stava cercando di usare Java quando ha scritto la maggior parte di PHP? Aumenterà davvero la sicurezza? E scrivere transazioni in Java riguarda solo la sicurezza?

La cosa sembra molto interessante ma non ne ho idea, che cos'è! Fornisci alcune informazioni sull'argomento.

Nota: quando dico transazione, coinvolge tutto. Dall'accesso all'account per il trasferimento di denaro.

    
posta Suhail Gupta 26.05.2013 - 08:23
fonte

3 risposte

1

L'utilizzo corretto del sistema di tipo strong di un linguaggio è molto importante per ridurre alcuni tipi di bug - varianti del "fornito argomento errato per quel metodo".

Ad esempio, pensa alla seguente funzione:

transfer_money(from_account, to_account, amount)

In un linguaggio debolmente / non tipizzato, è facile confondere i parametri from_account e to_account ; È anche comune utilizzare unità errate in amount (Dollari vs Centesimi, ad esempio).

Questi errori richiederebbero test rigorosi o una revisione manuale approfondita del codice.

OTOH, un uso (estremo) dei tipi risulterà in questo tipo di metodo:

transfer_money(SourceAccount from_account, 
               TargetAccount to_account,
               MoneyAmount   amount)

Lo stesso tipo di errori qui produrrà un errore di compilazione, il che renderà molto meno probabile l'effettivo raggiungimento della produzione.

Ora, questo non vuol dire che Java sia intrinsecamente più sicuro di PHP; Né che un sistema simile non può essere facilmente implementato in PHP; Né che in realtà è comune usare i tipi in questo modo in Java; Ma fornisce a Java un piccolo vantaggio su PHP per percorsi critici di codice. Da un POV di Safety Engineering, rende Java "più sicuro".

    
risposta data 26.05.2013 - 21:24
fonte
1

Non penso che ci sia alcuna verità dietro questa idea. Due cose principali che sarebbero diverse usando Java sono la JVM e il codice stesso.

  1. JVM. Non sono un esperto dei dettagli di jvm ma ci sono implementazioni PHP per jvm (ad es. link ). Hanno promosso la sicurezza come una delle funzionalità, ma hanno solo messo in evidenza le estensioni php buggy , vale a dire non difetti in PHP stesso.

  2. Il codice. Se il tuo amico può codificare transazioni sicure in Java, dovresti essere in grado di ri-implementarlo in PHP e avrà lo stesso livello di sicurezza (buono o cattivo). È abbastanza semplice verificare che le due implementazioni abbiano lo stesso comportamento, anche se la loro prova di sicurezza è tutta un'altra storia.

Soprattutto nell'ambito dell'ambito del codice transazione, non penso ci sia prova che Java sia intrinsecamente più sicuro di PHP.

    
risposta data 27.05.2013 - 07:03
fonte
-7

Una zona di codifica in Java può essere considerata più sicura nella regione di archiviazione dei file.

Con Java, un file di codice byte può essere memorizzato dove verrà eseguito il programma. Se viene trovato un file Java compilato, può essere eseguito solo con una macchina virtuale Java e non letto o facilmente decodificato.

In PHP, un file di script pieno di testo leggibile è ciò che è memorizzato. Quindi se in qualche modo il file è stato trovato, il programma potrebbe essere letto con un semplice editor di testo come Blocco note o Emacs.

Ciò significa per sicurezza che il funzionamento interno del programma sarebbe nascosto se scritto in Java. E solo nel caso in cui qualcuno avesse accesso al file del programma. Normalmente, con PHP il programma esiste su un server Web e viene eseguito senza visibilità in un browser Web. Il tuo amico, tuttavia, probabilmente vuole fare molta attenzione.

    
risposta data 26.05.2013 - 09:04
fonte

Leggi altre domande sui tag