1. 程式人生 > >SQL注入攻擊以及防護

SQL注入攻擊以及防護

在學習、面試過程中,多次接觸過SQL注入攻擊,今天我們就來好好總結一下吧。

SQL注入攻擊是黑客對資料庫進行攻擊的常用手段之一。SQL注入攻擊是指提交一段資料庫程式碼,根據程式返回的結果獲得某些他想得知的資料中,或者是刪除資料庫中重要資料以此來達到破壞資料庫的目的。相關的SQL注入可以通過測試工具pangolin進行。

對於如何進行注入,我們可以舉一個簡單的例子,比如查詢某一個東西,存在select * from admin where username='XXX' and password='YYY' ,此時如果使用者名稱文字框內輸入:abc'' or 1=1-- 在密碼框內輸入:123 則SQL語句變成:select * from admin where username='abc''' or 1=1 --and password='123’ 不管使用者輸入任何使用者名稱與密碼,此語句永遠都能正確執行,使用者輕易騙過系統,獲取合法身份。

對於sql注入,我們應該懂得如何預防。

1.永遠不要信任使用者的輸入。對使用者的輸入進行校驗,可以通過正則表示式,或限制長度;對單引號和
雙"-"進行轉換等,要在客戶端和服務端都進行相關的檢測。
2.永遠不要使用動態拼裝sql,可以使用引數化的sql或者直接使用儲存過程進行資料查詢存取。
3.永遠不要使用管理員許可權的資料庫連線,為每個應用使用單獨的許可權有限的資料庫連線。如果資料庫是SQL Server,就可以用有名字的引數了,格式是“@”字元加上引數。
4.不要把機密資訊直接存放,加密或者hash掉密碼和敏感的資訊,比如對使用者名稱和密碼進行加密,這樣子使用者輸入的資訊就對資料庫沒有任何意義了。
5.應用的異常資訊應該給出儘可能少的提示,最好使用自定義的錯誤資訊對原始錯誤資訊進行包裝,避免黑客利用錯誤知道資料庫的名字,表名等。
6.sql注入的檢測方法一般採取輔助軟體或網站平臺來檢測,軟體一般採用sql注入檢測工具jsky,如大名鼎鼎的Acunetix的Web漏洞掃描程式等。

相關推薦

SQL注入攻擊以及防護

在學習、面試過程中,多次接觸過SQL注入攻擊,今天我們就來好好總結一下吧。 SQL注入攻擊是黑客對資料庫進行攻擊的常用手段之一。SQL注入攻擊是指提交一段資料庫程式碼,根據程式返回的結果獲得某些他想得

SQL注入攻擊原理以及基本方法

一、SQL注入的概述 定義:SQL注入即是指web應用程式對使用者輸入資料的合法性沒有判斷,攻擊者可以在web應用程式中事先定義好的查詢語句的結尾上新增額外的SQL語句,以此來實現欺騙資料庫伺服器執行非授權的任意查詢,從而進一步得到相應的資料資訊。             

滲透測試:SQL注入攻擊(ASP)

分類: 滲透測試 SQL注入攻擊是黑客對資料庫進行攻擊的常用手段之一。隨著B/S模式應用開發的發展,使用這種模式編寫應用程式的程式設計師也越來越多。但是由於程式設計師的水平及經驗也參差不齊,相當大一部分程式設計師在編寫程式碼的時候,沒有對使用者輸入資料的合法性進行判斷,使應用程式存在安全隱患。

Java程式設計師從笨鳥到菜鳥之(一百)sql注入攻擊詳解(一)sql注入原理詳解

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

SQL注入攻擊及危害

SQL注入攻擊是黑客對資料庫進行攻擊的常用手段之一。隨著B/S模式應用開發的發展,使用這種模式編寫應用程式的程式設計師也越來越多。但是由於程式設計師的水平及經驗也參差不齊,相當大一部分程式設計師在編寫程式碼的時候,沒有對使用者輸入資料的合法性進行判斷,使應用程式存在安全隱患。使用者可以提交一段資料庫

sql注入攻擊和PreparedStatement有效防止sql注入攻擊

【1】sql注入攻擊: /** * SQL 注入. */ @Test public void testSQLInjection() { String username = "a' OR PASSWORD = "; String password = " OR '1'='1

SQL注入攻擊原理與幾種防禦方式

一、SQL注入簡介 SQL注入是比較常見的網路攻擊方式之一,它不是利用作業系統的BUG來實現攻擊,而是針對程式設計師程式設計時的疏忽,通過SQL語句,實現無帳號登入,甚至篡改資料庫。 二、SQL注入攻擊的總體思路   1.尋找到SQL注入的位置 2.判斷伺服器型別和後臺

jdbc_012_使用jdbc操作實現登入操作並且演示SQL注入攻擊

一、建庫及表語句(簡單測試) drop database db_test; create database db_test; use db_test; create table user( userId int(5) primary key comment '使用者id',

dljd_013_使用PreparedStatement避免SQL注入攻擊

一、使用PreparedStatement來避免SQL注入攻擊示例   這裡我只提供原始碼、測試類及結果截圖資訊、建庫/表的語句詳見上一集 package edu.aeon.logon; import java.sql.Connection; import java.sql.Prepared

C# 使用引數化SQL語句(防SQL注入攻擊

“SQL注入攻擊”問題。我們在程式中存在著大量拼接產生SQL語句的程式碼,這就會導致一個比較大的安全隱患,容易遭受SQL注入攻擊。我們在程式碼中用的SQL語句是: string sqlStr = "select * from [Users] where User

Java程式設計師從笨鳥到菜鳥之(一百零二)sql注入攻擊詳解(三)sql注入解決辦法

                在前面的部落格中,我們詳細介紹了:      我們瞭解了sql注入原理和sql注入過程,今天我們就來了解一下sql注入的解決辦法。怎麼來解決和防範sql注入,由於本人主要是搞java web開發的小程式設計師,所以這裡我只講一下有關於java web的防止辦法。其實對於其他的,

Java程式設計師從笨鳥到菜鳥之(一百零一)sql注入攻擊詳解(二)sql注入過程詳解

l 猜解資料庫中使用者名錶的名稱猜解法:此方法就是根據個人的經驗猜表名,一般來說,user,users,member,members,userlist,memberlist,userinfo,manager,admin,adminuser,systemuser,systemusers,sysuser,sysu

PHP漏洞全解(五)-SQL注入攻擊【轉】

轉自:https://www.cnblogs.com/pingliangren/p/5586987.html SQL注入攻擊(SQL Injection),是攻擊者在表單中提交精心構造的sql語句,改動原來的sql語句,如果web程式沒有對提交的資料經過檢查,那麼就會造成sql注入攻擊。 S

JDBC及防sql注入攻擊

哪有什麼一夜成名,都是百鍊成鋼 JDBC JDBC(Java DataBase Connectivity,java資料庫連線)又SUN公司開發,是一種用於執行SQL語句的Java API,可以為多種關係資料庫提供統一訪問,它由一組用Java語言編寫的類和介面組成。JDB

Web站點如何防範XSS、CSRF、SQL注入攻擊

XSS跨站指令碼攻擊 XSS跨站指令碼攻擊指攻擊者在網頁中嵌入客戶端指令碼(例如JavaScript),當用戶瀏覽此網頁時,指令碼就會在使用者的瀏覽器上執行,從而達到攻擊者的目的,比如獲取使用者

sql注入攻擊詳解(二)sql注入過程詳解

l 猜解資料庫中使用者名錶的名稱 猜解法:此方法就是根據個人的經驗猜表名,一般來說,user,users,member,members,userlist,memberlist,userinfo,manager,admin,adminuser,systemuser,systemusers,sysuser,sys

java面試題精解1:詳解XSS攻擊SQL注入攻擊、CSRF攻擊

1、xss攻擊 1.1 什麼是xss攻擊 XSS全稱cross-site scripting(跨站點指令碼),是當前 web 應用中最危險和最普遍的漏洞之一。攻擊者向網頁中注入惡意指令碼,當用戶瀏覽網頁時,指令碼就會執行,進而影響使用者,比如關不完的

網站漏洞修復方案防止SQL注入攻擊漏洞

SQL注入漏洞在網站漏洞裡面屬於高危漏洞,排列在前三,受影響範圍較廣,像asp、.net、PHP、java、等程式語言編寫的程式碼,都存在著sql注入漏洞,那麼如何檢測網站存在sql注入漏洞?SQL注入漏洞測試方法在程式程式碼裡不管是get提交,post提交,cookies的

如何防止網站被SQL注入攻擊

首先我們應該對網站程式程式碼進行詳細的安全檢測,與網站漏洞檢測,在網站的前端進行多種方式的提交與注入檢測,對程式碼裡中與使用者互動並與資料庫直接傳輸打交道的程式碼進行嚴查,看看是否可以摻雜非法的sql注入程式碼進去。對GET、POST、COOKIES的提交進行過濾,過濾特殊符號,對一些&*%¥#@/等

泛洪攻擊以及防護方法

泛洪攻擊種類: SYN泛洪攻擊。    SYN攻擊利用的是TCP的三次握手機制,攻擊端利用偽造的IP地址向被攻擊端發出請求,而被攻擊端發出的響應報文將永遠傳送不到目的地,那麼被攻擊端在等待關閉這個連線的過程中消耗了資源,如果有成千上萬的這種連線,主機資源將被耗盡,從而達到