In Java è comune vedere codice come System.getProperty('line.separator')
utilizzato per costruire le stringhe utilizzate per l'output, ecc. È stato raccomandato dagli scanner di vulnerabilità che è consigliabile convalidare questo input, ad es. assicurandoti che corrisponda a \n
o \r\n
ecc.
Ma mi chiedo, dal momento che Java stesso è vulnerabile a questi all'interno del proprio PrintWriter.printLn
e forse BufferedWriter.newLine()
ecc., è ora una procedura ottimale per convalidare System.getProperty('line.separator')
in ogni programma che emette nuove istruzioni di linea? Sembra eccessivo.
Esistono alcune migliori pratiche alternative che eliminerebbero la necessità di convalidare tutte le proprietà del sistema? Per esempio. è sufficiente come best practice per rivedere i privilegi e i comandi a livello di amministratore di sistema piuttosto che a livello di sviluppatore? Altrimenti, perché gli scanner di vulnerabilità stanno prendendo queste precauzioni ora?
La mia impressione è che questo tipo di convalida a livello di codice sia eccessivo in un ambiente di produzione aziendale standard in cui vi sono più livelli di separazione di funzioni e blocchi di privilegi tra dev / test / prod, ecc. Questa è solo la mia opinione, tuttavia, e mi piacerebbe sentire gli altri.