Applicazione standalone VB o applicazione Web ASP

0

Ho esperienza nello sviluppo di software e applicazioni web e ho deciso di fare del lavoro freelance sul lato. Bene, ho incontrato il mio primo cliente e stanno richiedendo un sistema personalizzato relativamente semplice che (senza essere prolisso) tiene traccia delle pratiche del cliente mentre procede attraverso i diversi processi manuali dell'azienda.

È una piccola azienda che ha circa 10 dipendenti, ma tutti i dipendenti interagiranno con le pratiche del cliente, quindi tutti avranno bisogno di accedere al nuovo sistema. Quando dico track intendo letteralmente che i dipendenti controllano come completati in una pagina semplice aumentano una barra di avanzamento in diverse fasi per la documentazione.

Ora sono% 110 in grado di codificare il sistema personalizzato che soddisfa i loro bisogni, ma non sono sicuro di come dovrei farlo. Le informazioni che vengono monitorate nel nuovo sistema e memorizzate nel DB sono informazioni riservate di cui sono molto protettive. La mia domanda principale è come dovrei sviluppare questo per essere il più sicuro possibile?

  • Hanno un proprio server in casa, quindi dovrei sviluppare un'applicazione (VB e SQL) per il server e richiedere ai dipendenti di accedere in remoto per usarlo? Può più di una persona accedere / utilizzare l'applicazione alla volta?
  • O dovrei sviluppare un'applicazione web (ASP.Net/VB e SQL) accessibile solo sulla loro rete ai loro dipendenti? Hanno in programma di espandere gli uffici, potrebbero configurare una VPN per accedere al sito?

Mi sto appoggiando ad un'applicazione web, ma non ho fatto troppo in termini di sicurezza. Quali opzioni specifiche ho per la sicurezza che non sono troppo complesse.

Fondamentalmente sto cercando pro e contro per entrambe le opzioni o suggerimenti su cosa dovrei.

    
posta DrewFerg11 15.08.2013 - 05:44
fonte

3 risposte

2

In realtà, hai due scelte indipendenti da fare:

  • Applicazione web e applicazione desktop,

  • Un'applicazione disponibile da qualsiasi luogo rispetto a un'applicazione disponibile solo sulla rete locale.

La prima scelta non ha nulla a che fare con la sicurezza della rete e deve essere dettata da due elementi:

  1. I vincoli relativi alle autorizzazioni richieste sul computer locale. Ad esempio, non puoi forzare la stampa di qualcosa da un'applicazione web, ma solo per invitare l'utente a stamparlo, non puoi accedere al file system locale, ecc.

  2. L'UX riguarda le applicazioni desktop che sono in grado di fornire un design dell'interazione più ricco, con un impatto minore sulle prestazioni. Questo è meno vero da HTML 5.

La seconda scelta dovrebbe essere motivata dalla facilità di accesso al sistema:

  1. L'immissione delle password è stancante. Possono essere ricordati, ma una volta che un utente cambia la sua password di Active Directory, diciamo una volta al mese, deve inserire nuovamente la sua password nella sua applicazione.

    Per un'applicazione a cui si accede da internet, non c'è nulla che tu possa fare. D'altra parte, quando l'utente si trova su una rete locale, usa l'autenticazione di Windows per salvare l'utente dall'importanza di inserire una password.

  2. Le VPN sono difficili da configurare, spesso legate a una versione specifica di un sistema operativo e raramente aggiornate, ecc. Non usarle.

Se desideri fornire il modo più semplice per utilizzare la tua app, rendila disponibile ovunque, ma rendila anche consapevole del caso in cui si trova su una rete locale. Nel primo caso, richiederà username e password; nel secondo caso, verrà autenticato automaticamente.

Se sei preoccupato per la sicurezza, non reinventare il meccanismo di autenticazione, usare sali e hash, usare PBKDF2, leggere un buon libro sulla sicurezza e visitare Sicurezza IT Sito Web Stack Exchange.

Nota: perché stai parlando di ASP nel titolo della tua domanda, mentre la domanda non ha nulla a che fare con questo?

    
risposta data 15.08.2013 - 07:51
fonte
1

Per aggiungere alla risposta di @ MainMa, mi sembra più una domanda di Project Management, piuttosto che una tecnica.

Il classico triangolo del Project Manager :

Tucontrolliunlato,ilcontrollodelclienteèglialtridue.

Haidettochevolevifareilweb,mapreoccupatiperlasicurezza(scope).Iltuobudgetconsenteformazione/ricerca/istruzione?(costo).Anchesetipuoipermetterel'allenamento,iltempotipermetteiltemponecessarioperimpararlo?(Schema).

Ilvecchioadagio,"Vendite risolve tutto" sicuramente si applica.

Quale direzione tecnica puoi permettersi ?

    
risposta data 15.08.2013 - 08:05
fonte
0

Per aggiungere la risposta di Christian, penso che sia stata solo la tua decisione fino ad ora. Sarà meglio pensare a tutte le possibilità sulla base delle informazioni che stai ricevendo, preparare le risposte e le stime, quindi comunicare con il tuo cliente.

La comunicazione è una delle parti chiave per essere un consulente. Ho visto un sacco di consulenti senza buone capacità tecniche, ma possono risolvere i problemi dei clienti.

I client amano le opzioni, ma a volte hanno perso le opzioni e tu puoi aiutarle o dare suggerimenti in quel momento. Tuttavia, assicurati che comprendano tutti gli scenari, le cause / gli effetti.

    
risposta data 15.08.2013 - 08:33
fonte

Leggi altre domande sui tag