Nella programmazione del server PHP, le richieste GET / POST codificate URL vengono analizzate in tipo "array" associativo al momento della ricezione. Per la maggior parte del tempo, gli argomenti di query possono essere considerati stringhe, tuttavia a volte determinati argomenti di query vengono analizzati in matrici annidate.
Ad esempio:
query.php?a=123&b[]=456&b[]=789
viene analizzato come
[ 'a'=>"123", 'b'=>["456","789"] ]
Poiché molte funzioni in PHP sono tolleranti ai guasti in modi estremamente inaspettati, vorrei chiedere l'esperienza di questo sito: è generalmente accettabile rifiutare a priori le query senza stringa, evitarle il più possibile e utilizzare interrogare i prefissi dei parametri?
Inoltre, quali sono le pratiche di programmazione consigliate in questo senso?
Motivo per cui chiedere
Recentemente, ho visto un video di YouTube, in cui qualcuno ha utilizzato uno schema di crittografia nazionale per verificare il comando della shell controllato dal client. Ha usato un nonce in argomento POST su hmac con la stringa di comando. Quando il nonce è array, la funzione hmac ha successo verbalmente e la sicurezza viene ignorata. Proviene da un'immagine di Twitter che dice approssimativamente "questo codice PHP contiene un bug mortale".
Aggiorna
In sostanza, ho voluto chiedere, quali sono i modelli generali "sani" della stringa di query. Dato che questo sarebbe troppo ampio e per lo più basato sull'opinione pubblica, dovrebbe essere incluso solo come note a margine nelle risposte.