Se ho una grande azienda che vende un prodotto , potrei non voler rivelare la sua fonte perché la gente potrebbe semplicemente copiarla e venderla, riducendo così i miei profitti.
Ma se la mia grande azienda fornisce un servizio per mezzo di un'applicazione Web, è molto probabile che io possa pubblicare il codice sorgente, perché il valore reale del mio servizio si trova altrove (in un grande e infrastruttura complessa, accesso ai database, ...).
Inoltre, potrei guadagnare la fiducia di altri clienti mostrando loro che il mio codice può essere verificato da molte persone, inclusi i clienti stessi. Ad esempio, questo potrebbe mostrare ai clienti che il mio codice non memorizza i loro dati in testo semplice.
Detto questo, è estremamente probabile che qualsiasi applicazione Web contenga vulnerabilità che possono essere trovate da un utente malintenzionato, con o senza accesso al codice sorgente. Se non pubblichi il codice (escludendo bug bounties), i bravi ragazzi non possono rivelarti vulnerabilità. Se lo fai, loro possono. Ovviamente, i cattivi esistono in entrambi i casi.
Infine, renditi conto che il mondo degli hacker non è suddiviso in persone puramente buone e puramente cattive. Alcune persone vogliono che le aziende e il mondo intero sappiano che sono brave a trovare vulnerabilità. Forse ottenere il proprio nome su una Hall of Fame (è per questo che i bug bounty sono buoni) o sulla sezione dei crediti di un repository Github è sufficiente per soddisfare questo "bisogno". Se non pubblichi il tuo codice, l'unico modo in cui queste persone devono ottenere ciò che vogliono è attaccare la tua applicazione o vendere un exploit funzionante contro di essa.