Codeigniter escapeshellarg () è stato disabilitato per motivi di sicurezza

C'è un modo per riscrivere la libreria Upload.php del codeigner perché continuo a confrontarmi

escapeshellarg () è stato disabilitato per motivi di sicurezza

Ho provato la soluzione in questo thread mettendo @ davanti a escapeshellarg, ma ancora non posso caricare le mie immagini, questo semplicemente ignora l'avviso.

Ho provato a contattare l'amministratore del mio hosting ma per motivi di sicurezza non possono triggersrlo.

Posso fare questo per poter caricare le immagini?

Puoi creare il tuo escapeshellarg proprio, è una function molto semplice che sfugge a each singola virgoletta nella string data e quindi aggiunge singole virgolette attorno ad essa.

 function my_escapeshellarg($input) { $input = str_replace('\'', '\\\'', $input); return '\''.$input.'\''; } 

Se il tuo provider ha comunque disabilitato altre funzioni richieste da Upload.php , dopo tutto potresti essere sfortunato.

Puoi cercare quali funzioni sono disabilitate creando un semplice file .php con la chiamata phpinfo() al suo interno. (cerca disable_functions nell'output generato)

Prova a sostituire escapeshellarg con @escapeshellarg nel file system / libraries / Upload.php.

Questo non ha nulla a che fare con CI. La function è stata disabilitata nel file php.ini . È abbastanza comune disabilitare varie funzioni non sicure (viste dalla prospettiva di un amministratore del server).

Se si utilizza l'hosting condiviso, probabilmente non c'è molto che si possa fare a riguardo. Prova a chiedere al tuo fornitore.

Se è ansible modificare php.ini aprirlo, trovare il field disable_functions e rimuovere escapeshellarg dall'elenco. Quindi riavviare il server. Questo dovrebbe abilitare la function.

Se hai ancora problemi, chiedi al tuo provider se è ansible caricare tutto. Voglio dire, se il tuo provider ha intenzionalmente rimosso tutte le funzionalità di caricamento, quindi stai perdendo tempo a cercare un modo per farlo.

Vai al sistema / librerie / Upload.php

Sostituzione

escapeshellarg con @escapeshellarg

 if (DIRECTORY_SEPARATOR !== '\\') { $cmd = 'file --brief --mime ' . @escapeshellarg ($file['tmp_name']) . ' 2>&1';