{"id":5451,"date":"2018-07-25T12:47:07","date_gmt":"2018-07-25T15:47:07","guid":{"rendered":"http:\/\/wiki3.locaweb.com.br\/?post_type=ht_kb&#038;p=5451"},"modified":"2019-08-05T14:06:25","modified_gmt":"2019-08-05T17:06:25","slug":"como-se-proteger-do-sql-injection","status":"publish","type":"ht_kb","link":"https:\/\/www.locaweb.com.br\/ajuda\/wiki\/como-se-proteger-do-sql-injection\/","title":{"rendered":"Como se proteger do SQL Injection"},"content":{"rendered":"<h6>O que \u00e9 o SQL Injection<\/h6>\n<p>SQL Injection \u00e9 um ataque que consiste na inser\u00e7\u00e3o de uma query via aplica\u00e7\u00e3o web. A Locaweb sempre toma todas as precau\u00e7\u00f5es em rela\u00e7\u00e3o a atualiza\u00e7\u00f5es para evitar quaisquer brechas de seguran\u00e7a nos sites hospedados.\u00a0Tais vulnerabilidades est\u00e3o presentes em c\u00f3digos (ASP, PHP, etc.) colocados pelos pr\u00f3prios clientes.<\/p>\n<p>Este \u00e9 o caso da SQL Injection, brecha atrav\u00e9s da qual um invasor pode executar queries arbitr\u00e1rios numa base relacional via &#8220;inje\u00e7\u00e3o&#8221; de comandos em campos de formul\u00e1rios.<\/p>\n<p>Entretanto \u00e0s vezes surgem vulnerabilidades que s\u00e3o exploradas atrav\u00e9s de programa\u00e7\u00e3o, de nada adiantando as precau\u00e7\u00f5es que tomamos.<\/p>\n<p><strong>Atualmente existem 5 tipos de SQLi\u00a0<\/strong><\/p>\n<ul>\n<li>Poorly Filtered Strings<\/li>\n<li>Incorrect type handling<\/li>\n<li>Signature Evasion<\/li>\n<li>Filter Bypassing<\/li>\n<li>Blind SQL Injection<\/li>\n<\/ul>\n<h6>Como se proteger?<\/h6>\n<p>De acordo com a OWASP as melhores pr\u00e1ticas para se previnir de um ataque de SQLi s\u00e3o:<\/p>\n<ul>\n<li>Parametriza\u00e7\u00e3o das consultas<\/li>\n<li>Usar &#8220;stored procedures&#8221;<\/li>\n<li>Escapar toda entrada fornecida pelo usu\u00e1rio<\/li>\n<li>Limitar privil\u00e9gios aos acessos<\/li>\n<\/ul>\n<p>Usando a fun\u00e7\u00e3o addslashes() tem o mesmo efeito que habilitar magic quotes, por\u00e9m s\u00f3 aplica onde for conveniente. O que ela faz \u00e9 colocar um caracter de escapa antes das aspas simples ou dupla, antes da barra invertida e do caracter NULL.<\/p>\n<p>Usar &#8216;prepared statements&#8217; ao inv\u00e9s do pr\u00f3prio c\u00f3digo SQL atribu\u00edndo todas as outras medidas de preven\u00e7\u00e3o usar esta, nos daria mais performace e seguran\u00e7a, al\u00e9m de ser mais simples de ler e escrever.<\/p>\n<p>Porem s\u00f3 pode ser usado em SELECT, INSERT, UPDATE, REPLACE, DELETE e CREATE TABLE.<\/p>\n<p>$login = $_GET[&#8216;login&#8217;] $query = &#8220;SELECT * FROM registos WHERE login = &#8216;$login'&#8221;;<\/p>\n<p>Ficaria assim:<\/p>\n<p>$query = &#8220;SELECT * FROM registos WHERE login = OR 1&#8221;;<\/p>\n<p>Recomendamos Limitar Privil\u00e9gios das contas com acesso ao DB. \u00c9 importante manter apenas os privil\u00e9gios e acessos necess\u00e1rios. \u00c9 comum muitas permiss\u00f5es serem dadas para resolver problemas de funcionalidade, muito parecido ao chmod 777 no linux.<\/p>\n<p>Para se proteger do SQL Injection verifique se todo par\u00e2metro passado para o site \u00e9 tratado antes que seja concatenado na query.<\/p>\n<h6>Refer\u00eancias<\/h6>\n<ul>\n<li><a href=\"https:\/\/www.owasp.org\/index.php\/SQL_Injection_Prevention_Cheat_Sheet\" target=\"_blank\" rel=\"noopener noreferrer\">OWASP<\/a><\/li>\n<li><a href=\"http:\/\/phpsec.org\/projects\/guide\/3.html#3.2\" target=\"_blank\" rel=\"noopener noreferrer\">PHP<\/a><\/li>\n<li><a href=\"https:\/\/docs.microsoft.com\/en-us\/previous-versions\/msp-n-p\/ff649487(v=pandp.10)#pagguidelines0001_validateinputforlengthrangeformatandtype\" target=\"_blank\" rel=\"noopener noreferrer\">Microsoft<\/a><\/li>\n<\/ul>\n<p>Aproveite e conhe\u00e7a outros produtos da Locaweb, como o Hospedagem de Sites, <a href=\"https:\/\/www.locaweb.com.br\/hospedagem-de-sites-com-dominio-gratis\/\" target=\"_blank\" rel=\"noopener noreferrer\">clique aqui<\/a> e saiba mais!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>O que \u00e9 o SQL Injection SQL Injection \u00e9 um ataque que consiste na inser\u00e7\u00e3o de uma query via aplica\u00e7\u00e3o web. A Locaweb sempre toma todas as precau\u00e7\u00f5es em rela\u00e7\u00e3o a atualiza\u00e7\u00f5es para evitar quaisquer brechas de seguran\u00e7a nos sites hospedados.\u00a0Tais vulnerabilidades est\u00e3o presentes em c\u00f3digos (ASP, PHP, etc.) colocados&#8230;<\/p>\n","protected":false},"author":232,"comment_status":"closed","ping_status":"closed","template":"","format":"standard","meta":{"footnotes":""},"ht-kb-category":[],"ht-kb-tag":[],"class_list":["post-5451","ht_kb","type-ht_kb","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/www.locaweb.com.br\/ajuda\/wp-json\/wp\/v2\/ht-kb\/5451","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.locaweb.com.br\/ajuda\/wp-json\/wp\/v2\/ht-kb"}],"about":[{"href":"https:\/\/www.locaweb.com.br\/ajuda\/wp-json\/wp\/v2\/types\/ht_kb"}],"author":[{"embeddable":true,"href":"https:\/\/www.locaweb.com.br\/ajuda\/wp-json\/wp\/v2\/users\/232"}],"replies":[{"embeddable":true,"href":"https:\/\/www.locaweb.com.br\/ajuda\/wp-json\/wp\/v2\/comments?post=5451"}],"version-history":[{"count":4,"href":"https:\/\/www.locaweb.com.br\/ajuda\/wp-json\/wp\/v2\/ht-kb\/5451\/revisions"}],"predecessor-version":[{"id":17969,"href":"https:\/\/www.locaweb.com.br\/ajuda\/wp-json\/wp\/v2\/ht-kb\/5451\/revisions\/17969"}],"wp:attachment":[{"href":"https:\/\/www.locaweb.com.br\/ajuda\/wp-json\/wp\/v2\/media?parent=5451"}],"wp:term":[{"taxonomy":"ht_kb_category","embeddable":true,"href":"https:\/\/www.locaweb.com.br\/ajuda\/wp-json\/wp\/v2\/ht-kb-category?post=5451"},{"taxonomy":"ht_kb_tag","embeddable":true,"href":"https:\/\/www.locaweb.com.br\/ajuda\/wp-json\/wp\/v2\/ht-kb-tag?post=5451"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}