Prezados, eu gostaria de abrir uma discussão sobre como nos proteger desta prática.
Eu sempre pensei que o Scriptcase por padrão nos formulários vinha com essa proteção ativa. Hoje, eu ainda acredito que seja assim, porém, fiquei com uma pulga atrás da orelha ao olhar o código utilizado em notificações criado pela Netmake.
O código que estava olhando e que me chamou atenção era este de notificações:
sc_lookup(rs, "SELECT tags FROM notif_user_tags WHERE login = " . sc_sql_injection({login}) . " AND login_sender=". sc_sql_injection({notif_login_sender}) );
Para fazer o código do select, a Netmake utiliza a função sc_sql_injection. O que eu nunca usei em nenhum código, pois sempre acreditei que tinha uma validação ao inserir qualquer coisa no input.
Além disso, eles fazem isso com o update também:
sc_exec_sql("UPDATE notif_inbox SET notif_tags = " . sc_sql_injection($tags_in_msg) . " WHERE inbox_id = ". {inbox_id} );
Agora entra a questão, como vocês fazem para se proteger desse problema?
- Sim
- Não
0 votantes
Usam essa função em todo select, insert e update de vocês?
Fiquei com uma pulga atrás da orelha, pois sempre pensei que o próprio input validava isso por debaixo dos panos.
Caso realmente é necessário utilizar isso em todos os select, insert e updates que tem interação com os campos de nossos formulários. Acredito que deveria estar na documentação de forma explicita sobre isso.
Obrigado pelas respostas.