當前位置:首頁 » 編程軟體 » jsp跨站腳本

jsp跨站腳本

發布時間: 2023-05-29 01:13:52

A. jsp asp md5加密不一致

檢查網站是否存在sql注入和跨站腳本,進行字元過濾
首先修改網站管理員帳號密碼昌則 密碼有條件的話進行md5加密 ,比較有效
最好不要使用cookies
建議修改後台登錄路徑耐正棚(若出錯則修改回來),這個方法極其有效清殲 如把admin.asp改成 xx.asp(xx隨便 越復雜越好 )
如果懂得修改源碼的話 修改資料庫的管理員表名 改得復雜點(但asp源碼中同樣要改),這個不太推薦

B. 怎麼讓一個JSP裡面的腳本<script>裡面的參數內容傳遞到另一個JSP

java">比如這液渣裂樣一句在script:
window.location.href="main.jsp?msg=你好"
在鬧閉main.jsp頁面接收梁橘:
request.getParameter("msg");

C. 如何檢測SQL注入技術以及跨站腳本攻擊

在最近兩年中,安全專家應該對網路應用層的攻擊更加重視。因為無論你有多強壯的防火牆規則設置或者非常勤於補漏的修補機制,如果你的網路應用程序開發者沒
有遵循
安全代碼進行開發,攻擊者將通過80埠進入你的系統。廣泛被使用的兩個主要攻擊技術是SQL注入[ref1]和CSS[ref2]攻擊。SQL注入是
指:通過互聯網的輸入區域,插入SQL meta-characters(特殊字元
代表一些數據)和指令,操縱執行後端的SQL查詢的技術。這些攻擊主要針對其他組織的WEB伺服器。CSS攻擊通過在URL里插入script標簽,然後

誘導信任它們的用戶點擊它們,確保惡意Javascript代碼在受害人的機器上運行。這些攻擊利用了用戶和伺服器之間的信任關系,事實上伺服器沒有對輸
入、輸出進行檢測,從而未拒絕javascript代碼。
這篇文章討論SQL注入和CSS攻擊漏洞的檢測技術。網上已經有很多關於這兩種基於
WEB攻擊的討論,比如如何實施攻擊,他們的影響,怎樣更好的編制和設計程序防止這些攻擊。 然而,
對如何檢測這些攻擊並沒有足夠的討論。我們採用流行的開源的IDS Snort[ref
3],組建根據檢測這些攻擊的規則的正則表達式。附帶,Snort默認規則設定包含檢測CSS的方法,但是這些容易被避開檢測。比如大多通過hex進制編
碼,如%3C%73%63%72%69%70% 74%3E代替避開檢測。
依賴level of
paranoia組織的能力,我們已經編寫了多種檢測相同攻擊的規則。如果你希望檢測各種可能的SQL注入攻擊,那麼你需要簡單的留意任何現行的SQL
meta-characters,如單引號,分號和雙重破折號。同樣的一個極端檢測CSS攻擊的方法,只要簡單地提防HTML標記的角括弧。但這樣會檢測
出很多錯誤。為了避免這些,這些規則需要修改使它檢測更精確些, 當仍然不能避免錯誤。
在Snort規則中使用pcre(Perl
Compatible Regular
Expressions)[ref4]關鍵字,每個規則可以帶或不帶其他規則動作。這些規則也可以被公用軟體如grep(文檔搜索工具)使用,來審閱網路
伺服器日誌。 但是,需要警惕的是,用戶的輸入只有當以GET提交請求時,WEB伺服器才會記錄日記,如果是以POST提交的請求在日記中是不會記錄的。
2. SQL注入的正則表示式

你為SQL注入攻擊選擇正則表示式的時候,重點要記住攻擊者可以通過提交表單進行SQL注入,也可以通過Cookie區域。你的輸入檢測邏輯應該考慮用戶

組織的各類型輸入(比如表單或Cookie信息)。並且如果你發現許多警告來自一個規則,請留意單引號或者是分號,也許些字元是你的Web應用程序創造的
合法的在CookieS中的輸入。因此, 您需要根據你的特殊的WEB應用程序評估每個規則。
依照前面提到,一個瑣細的檢測SQL射入攻擊的正則表達式要留意SQL特殊的meta-characters 譬如單引號(』)雙重擴則號(--),為了查出這些字元和他們hex等值數, 以下正則表達式適用:
2.1 檢測SQL meta-characters的正則表達式
/(\%27)|(\』)|(\-\-)|(\%23)|(#)/ix
解釋:

們首先檢查單引號等值的hex,單引號本身或者雙重擴折號。這些是MS SQL Server或Oracle的字元, 表示後邊的為評論,
隨後的都將被忽略。 另外,如果你使用MySQL,你需要留意 』#』和它等值的hex的出現。注意我們不需要檢查雙重破折號等值的hex,
因為這不是HTML meta-character, 瀏覽器不會進行編碼。 並且,
如果攻擊者設法手工修改雙重破折號為它的hex值%2D(使用代理像Achilles[ref 5]), SQL注入將失敗。
加入上述正則表達式的新的Snort規則如下:
alert
tcp $EXTERNAL_NET any -> $HTTP_SERVERS $HTTP_PORTS (msg:"SQL
Injection - Paranoid";
flow:to_server,established;uricontent:".pl";pcre:"/(\%27)|(\』)|(\-\-)|(%23)|(#)/i";
classtype:Web-application-attack; sid:9099; rev:5;)
在本篇討論中,
uricontent關鍵字的值為".pl ", 因為在我們的測試環境里, CGI
程序是用Perl寫的。uricontent關鍵字的值取決於您的特殊應用, 這個值也許是".php ", 或" .asp ", 或" .jsp
", 等。 從這點考慮, 我們不顯示對應的Snort 規則, 但是我們會給出創造這些規則的正則表達式。
通過這些正則表達式你可以很簡單的創造很多的Snort規則.在前面的正則表達式里,
我們檢測雙重破折號是因為:即便沒有單引號的存在那裡也可能是SQL射入點[ref 6]。 例如, SQL查詢條目只包含數值,如下:
select value1, value2, num_value3 from database
where num_value3=some_user_supplied_number
這種情況,攻擊者可以執行額外的SQL查詢, 示範提交如下輸入:
3; insert values into some_other_table
最後, pcre的修飾符』 i』 和』 x 』 是用於分別匹配大小寫和忽略空白處的。 上面的規則也可以另外擴展來檢查分號的存在。然而,分號很可以是正常HTTP應答的一部分。為了減少這種錯誤,也是為了任何正常的單引號和雙重擴折號的出
現,上面的規則應該被修改成先檢測=號的存。用戶輸入會響應一個GET或POST請求,一般輸入提交如下:
username=some_user_supplied_value&password=some_user_supplied_value
因此, SQL 注入嘗試將導致用戶的輸入出現在a = 號或它等效的hex值之後。
2.2 修正檢測SQL meta-characters的正則表達式
/((\%3D)|(=))[^\n]*((\%27)|(\』)|(\-\-)|(\%3B)|(:))/i
解釋:
這個規則首先留意 = 號或它的hex值(%3D),然後考慮零個或多個除換行符以外的任意字元,最後檢測單引號,雙重破折號或分號。

型的SQL注入會嘗試圍繞單引號的用途操作原來的查詢,以便得到有用的價值。討論這個攻擊一般使用1』or』1』=』1字元串. 但是,
這個串的偵查很容易被逃避,譬如用1』or2>1 --.
然而唯一恆定的部分是最初的字元的值,跟隨一單引號,再加』or』。隨後的布爾邏輯可能在一定范圍上變化,可以是普通樣式也可能是非常復雜的。這些攻擊可
以相當精確被偵測,通過以下的正則表達式。2.3章節講解。
2.3 典型的 SQL 注入攻擊的正則表達式
/\w*((\%27)|(\』))((\%6F)|o|(\%4F))((\%72)|r|(\%52))/ix
解釋:
\w* - 零個或多個字元或者下劃線。
(\%27)|\』 - 單引號或它的hex等值。
(\%6 F)|o|(\%4 F))((\%72)|r|-(\%52) -『or』的大小寫以及它的hex等值。
』union』SQL
查詢在SQL注入各種資料庫中攻擊中同樣是很常見的。如果前面的正則表達式僅僅檢測單引號或則其他的SQL meta characters
,會造成很多的錯誤存在。你應該進一步修改查詢,檢測單引號和關鍵字『union』。這同樣可以進一步擴展其他的SQL關鍵字,像』select』,
』insert』, 』update』, 』delete』, 等等。
2.4 檢測SQL注入,UNION查詢關鍵字的正則表達式
/((\%27)|(\』))union/ix
(\%27)|(\』) - 單引號和它的hex等值
union - union關鍵字
可以同樣為其他SQL查詢定製表達式,如 >select, insert, update, delete, drop, 等等.

果,到這個階段,攻擊者已經發現web應用程序存在SQL注入漏洞,他將嘗試利用它。如果他認識到後端伺服器式MS SQL
server,他一般會嘗試運行一些危險的儲存和擴展儲存過程。這些過程一般以『sp』或『xp』字母開頭。典型的,他可能嘗試運行
『xp_cmdshell』擴展儲存過程(通過SQL Server執行Windows
命令)。SQL伺服器的SA許可權有執行這些命令的許可權。同樣他們可以通過xp_regread, xp_regwrite等儲存過程修改注冊表。
2.5 檢測MS SQL Server SQL注入攻擊的正則表達式
/exec(\s|\+)+(s|x)p\w+/ix
解釋:
exec - 請求執行儲存或擴展儲存過程的關鍵字
(\s|\+)+ - 一個或多個的空白或它們的http等值編碼
(s|x) p- 『sp』或『xp』字母用來辨認儲存或擴展儲存過程
\w+ - 一個或多個字元或下劃線來匹配過程的名稱
3. 跨站腳本(CSS)的正則表達式

發動CSS攻擊或檢測一個網站漏洞的時候, 攻擊者可能首先使簡單的HTML標簽如(粗體),(斜體)或(下劃線),或者他可能嘗試簡單的
script標簽如alert("OK").
因為大多數出版物和網路傳播的檢測網站是否有css漏洞都拿這個作為例子。這些嘗試都可以很簡單的被檢測出來。
然而,高明點的攻擊者可能用它的hex值替換整個字元串。這樣標簽會以%3C%73%63%72%69%70%74%3E出 現。
另一方面,攻擊者可能使用web代理伺服器像Achilles會自動轉換一些特殊字元如換成%3E.這樣攻擊發生時,URL
中通常以hex等值代替角括弧。
下列正則表達式將檢測任何文本中包含的html的。它將捉住試圖使用、、或。這正則表達式應該忽略大小寫。我們需要同時檢測角括弧和它的hex等值(% 3C|
3.1 一般 CSS 攻擊的正則表達式
/((\%3C)|)/ix
解釋:
((\%3C)|) -檢查>或它的hex等值
Snort 規則:
alert
tcp $EXTERNAL_NET any -> $HTTP_SERVERS $HTTP_PORTS (msg:"NII
Cross-site scripting attempt"; flow:to_server,established;
pcre:"/((\%3C)|)/i"; classtype:Web-application-attack; sid:9000; rev:5;)
跨站腳本同樣可以使用技術。現行默認的snort規則可以被輕易避開。
3.2章節提供了防止這種技術的方法。
3.2 "
/((\%3C)|)/I
解釋:
(\%3 C)|) ->或它的hex等值
3.3 CSS 攻擊的極端的正則表達式
/((\%3C)|)/I
解釋:
這個規則簡單尋找。由於你的web伺服器和web應用程序的構架,這個規則可能產生一些錯誤。但它能保證捉住任何CCS或者類似CSS的攻擊。
一個不錯避開過濾的CSS方法請參考Bugtraq投稿的

但是請注意最後一種極端的規則將能檢測這所有的攻擊。
總結:


這篇文章中,我們提出了不同種類的正則表達式規則來檢測SQL注入和跨站腳本攻擊。有些規則簡單而極端,一個潛在的攻擊都將提高警惕。但這些極端的規則可

能導致一些主動的錯誤。考慮到這點,我們修改了這些簡單的規則,利用了另外的樣式,他們可以檢查的更准確些。在這些網路應用成的攻擊檢測中,我們推薦將這
些作為調試你IDS或日誌分析方法的起點。再經過幾次修改後,在你對正常網交易部分的非惡意應答進行評估以後,你應該可以准備的檢測那些攻擊了。

D. 如何解決jsp http響應分割漏洞

在HTTP響應頭拆分攻擊中具體牽涉到三個對象:
漏洞伺服器:即存在漏洞的伺服器。
攻擊工具:比如瀏覽器,類似IE6.0。
攻擊者:發動攻擊的人。
HTTP響應頭拆分攻擊本質是:攻擊者可以發送一個或幾個HTTP指令迫使漏洞伺服器產生一個攻擊者構想好的輸出。它可以讓伺服器誤把幾條HTTP請求看成一次完成的HTTP請求來解釋。第一條請求也許攻擊者部分控制著一部分,但這並不是危險的;危險的是,攻擊者完全控制著第二條HTTP請求,即從HTTP狀態行一直到HTTP請求的尾部。如果這樣可行,攻擊者就會發送多個請求指令到目標系統:第一條使得伺服器完全接受兩個HTTP響應,第二條響應通常是在伺服器上請求一些非法資源,而伺服器將會自動匹配到第二條響應,輸出攻擊者想要請求的資源,從而達到攻擊者的目的。
通過這個思路,我們可以構造出形形色色的攻擊,具體來說:
1 跨站腳本攻擊(XSS):這是一個非常普通和老式的漏洞,它可以讓用戶通過運行了一段javascript或者html代碼後,可以截取該用戶的cookie和session。但是到現在,通過一些重定向腳本發起一次XSS攻擊是很困難的,尤其是當用戶使用最新補丁的IE瀏覽器的時候,除非位置頭是完全控制的。但是當結合HTTP響應頭攻擊確是可以非常簡單實現,即使只是部分控制位置頭。
2 web緩存中毒(我們稱之為web損耗):這是一個新的攻擊技術,攻擊者強迫伺服器高速緩存中記錄了第二次HTTP請求,而伺服器中的高速緩存記錄的第二次請求是經過攻擊者精心構造的。這將成功的對目標站點進行損耗,當其他人訪問目標站點時,他們僅僅讀取了高速緩存里的數據,造成站點被「黑」的假象。當然,除了站點損耗之外,攻擊者也可以偷取用戶的session和cookie。
3 通過對用戶的攻擊:這是第二種方式的一個特殊情況。它對單個逗鄭用戶的欺騙、對伺服器單個頁面的損耗,和暫時的磨損,也可以偷取到特定用戶的session和cookie。
4 劫持具體用戶的頁面敏感信息:攻擊者欺騙伺服器,並取得敏感用戶的許可權,並進入其用戶的狀態,訪問到一些秘密信息。
5 瀏覽器高速緩存中毒:這也是一項最新的攻擊方式,它這和跨站腳本攻擊方式有點類似,唯一的差別就是攻擊者強迫瀏覽器高速緩存中記錄一個長和持續的磨損的網頁,直到瀏覽器的高速緩存已經清潔。
對於這些我將在後面一一作介紹。
三:web高速緩存中毒的實現缺世
由於這是一個新興的技術,所以這個段落我將對web高速緩存中毒的實現做進一步的分析。
1 毒害反向代理高速緩存:即電子塗寫。在這種方式中,攻擊者將直接面向網站。當然最厲害的手法是磨損該網站的首頁,這樣所有客戶端將都受到影響,這也是最漂亮的手段,但是這樣很容易被發現。
2 毒害一台中間高速緩存伺服器:迂迴。這種方式被發現是很困難的,中間緩存伺服器是有很多的,而且漏洞伺服器不山扮頌可能佔有所有的中間緩存伺服器,這些伺服器很有可能不是在同一個地方,比如我們攻擊台灣的站點,我們很有可能會先攻擊一台位於美國的中間緩存伺服器,即使被調查到了也是要很久的,也許我們早就有時間把所有的信息給清除。
3 毒害瀏覽器高速緩存:一針見血。攻擊者很有可能會瞄準到一個特殊用戶,例如從一個很富有的用戶那裡偷取到證書,這樣的攻擊將會變得很獨特而且很難實施。因為,它不同於跨站腳本攻擊,而且被毒害的頁面要始終保持在高速緩存中以等待受害者(即你所瞄準的用戶)來裝載,有時候受害者從來都不會登陸到那個頁面,或者是受害者瀏覽器禁止了JAVA腳本的執行等等,都會造成無法成功。
四:HTTP響應頭漏洞攻擊基本技術。
HTTP響應頭攻擊把代碼嵌入到用戶信息中並放在HTTP頭部,也發生在把用戶信息和代碼嵌入到重定向到的URL中,或者把腳本嵌入到cookie值或者name里。在第一條響應中,重定向的URL是HTTP響應頭的一部分,第二條響應是確定cookie,cookie中的name/value是響應頭中set-cookie的一部分。

E. 請問如何解決跨站問題

最近腳本攻擊好象是很流行的,不過早在很久前就有這個了!腳本攻擊嚴格的說應該是一件藝術而不是漏洞!首先我們先要知道什麼是腳本,腳本就是運行在網頁伺服器上的文本程序,例如:ASP、PHP、CGI、JSP、ISAP等等,腳本的攻擊就是利用這些文件的設置和編寫時的錯誤或者疏忽不當,攻擊者就可以利用這些來達到自己攻擊目的,如果一個伺服器存在這些漏洞,那麼它的淪陷也是時間的問題!
這些文本文件一般都是要結合資料庫來使用的,這些資料庫有ACCESS、MSSQL、MYSQL、Oracle等!腳本攻擊就是針對這些資料庫來配合腳本對一些變數的過濾不嚴的問題來達到得到用戶密碼等敏感信息,修改資料庫等目的!下面我就針對這些來分別舉例說明!
一、跨站腳本的攻擊
腳本的跨站(CSS/XSS)就是利用程序對用戶提交的變數不嚴,大多數是利用多媒體標簽,前段時間比較流行的flash跨站就是利用的這個,比如我在[FLASH=450,350][/FLASH]之間插入一個我自己作好的一個swf文件,swf文件里我們用geturl里加上javascript:window.open('http://qfaq.yeah.net'就可以讓他打開清風安全網的網站,如果這里是一個木馬網頁,呵呵,,,你就等著中木馬吧!還有就是竊取用戶的cookie,例如我們利用也就是圖片的跨站,在這個裡面插入
這段地址即可得到!如果將javascript過濾掉後怎麼辦?
好,我們在看看下面這段代碼:
[upload=swf]uploadImages/200310812145390577.swf?">[/upload]
怎麼樣,還是能將你的信息得到的,而且還不會彈出對話框!
另外在joekoe論壇程序里還有一個這樣的問題,比如你發個帖子里有[DIR][/DIR]就會彈出一個播放器的安裝程序,呵呵,如果是一個黑心的站長利用這個來放馬,那後果就不用說了吧!
解決辦法:現在還沒有好的方法解決這個問題,你要做的就是將多媒體的標簽刪掉!
另附ASP和PHP的跨站代碼
php如下
$info = getenv("QUERY_STRING";
if ($info) {
$fp = fopen("test.txt","a";
fwrite($fp,$info."n";
fclose($fp);
}
?>

asp如下

二、sql injection
是現在最熱門的,也是本文要重點說的!
1、ASP+ACCESS資料庫類型的SQL注射
現在的大多數網站是採用的這個組合,但是如果在ASP程序中沒有對用戶提交的變數充分過濾的話就可能導致管理員密碼被猜到,整個網站的信息就會暴漏無移~!
在大多數ASP站點中,我們並不知道其程序代碼,靠任何掃描器也不可能發現SQL injection漏洞,這時就要靠手工檢測了,由於我們執行SQL語句要用到單引號、分號、逗號、冒號和「--」,所以我們就在可修改的URL後加上以上符號,或在表單中的文本框加上這些符號!比如比較經典的金梅系統漏洞,在movie.aps中有怎麼一段代碼:
articleid=request("id"
set rs=server.createobject("adodb.recordset"
sql="update learning set hits=hits+1 where articleID="&articleid

--------------------------------------------------------------------------------

2 [轉帖]腳本安全和利用
rs.open sql,conn,1,3
sql="select * from learning where articleid="&articleid
rs.open sql,conn,1,1

articleid未經任何檢查便提交了,所以我們就可以自己構造一些SQL語句來提交上去!具體的利用過程請看拙作《SQL注入完整篇》和《SQL注入的補充》的動畫教程,這里我就不在重復的說了!
2、ASP+MYSQL資料庫類型的利用
MYSQL資料庫簡單使用和強大的功能一直以來都是網管們的最愛!但是如果是ASP中沒有對變數過濾的話,我們就可以來直接的到他的系統管理員許可權!
比如動網論壇、BBSXP論壇的SQL版有好幾個文件都沒有對ID過濾,所以我們只要找到他的存在問題的頁面就可以了,
看這段代碼:rs.open "select * from news where newsid=" & cstr(request("newsid"),conn,1,1
比如我們提交:
http://XXX/show.asp?id=1;exec master.dbo.xp_cmdshell 'net user xuehan ilovexuehan /add';--
http://XXX/show.asp?id=1;exec master.dbo.xp_cmdshell 'net localgroup administrators xuehan /add';--
看到了嗎?我們已經在系統中田加了一個xuehan 密碼是ilovexuehan的管理員帳號,以下的事情你就自己來做吧,呵呵,,,不用我來教了吧!!!
如果過濾了分號和單引號怎麼辦?呵呵,我們只要將我們的命令形式轉換一下,比如我們轉換成十六進制或者別的形式就可以繼續注入了,還有就是他如果過濾了xp_cmdshell 我們也可以解決,我們可以寫成xp'+'_cmd'+'shell形式,如果他將xp_cmdshell 擴展刪掉,我們可以通過xplog70.dll文件來恢復,呵呵,,,具體自己查找下資料庫的知識,當然我們也可以用別的擴展!所以說SQL injection不僅僅是一門技術,更要有靈活的頭腦和扎實的資料庫知識,特別是對SQL語言的掌握程度,如果不會SQL語言,你永遠都是生搬硬套,遇到障礙就過不去了!
3、PHP+MYSQL資料庫類型
PHP+MYSQL一直以來都認為是最安全的組合,不過一些文件沒有過濾單引號、反斜線等,我們也可以來進行注入,不過在最新的php安裝程序里的php.ini文件默認都是對這些過濾掉的,所以很大情況下我們是無法對進行注入的,不過也有許多牛人們可以饒過這個限制的!由於我的PHP和MYSQL不是太懂,所以就不能來具體舉例來說明了,大家要是有興趣可以去找寫資料來看!!!
需要從根本上解決解決SQL Injection問題。還得從程序本身入手。過濾不能單純的過濾URL所提交的參數,在表單里的也要過濾,value=後面的可以修改的數據,修改後可以提交到伺服器,總之對所有的表單提交的數據以及用戶可能對HTML源文件進行修改來控制的所有來自Web伺服器外部的數據進行過濾或轉換,對單引號、雙引號、分號「--」還有對數字鍵上面的所有特殊字元進行過濾,還有QUERY_STRING環境變數。在伺服器上刪除一些危險的擴展存儲過程,比如xp_cmdshell。有條件裝個IDS更好,不敢說無堅不摧,但至少可以阻擋大部分攻擊者。
三、一些別的腳本攻擊
有些程序沒有對cookie或者session進行過濾和檢查,就造成了用戶可以非法修改提交頁面,自己提交修改數據,比如像海陽頂端網木馬的以前版本對session沒有過濾,我們就可以饒過密碼的驗證來到達真正的頁面,還有就是post提交的問題,像leadbbs的2.77版本就是沒有充分的過濾,我們就可以把管理員的密碼修改成自己的密碼!
還有一個腳本的攻擊例子,在Discuz! 2.0 論壇里,因為個人屬性缺乏必要的安全確認,所以很容易誘使其他會員自動修改其個人屬性內容,特別是注冊郵件信息,這關系著登陸密碼的修改。
比如我們發個帖子,寫上

誘使會員點擊這個頁面後,就會自動修改該會員注冊的email地址為crack.x.h2163.com。當然為了隱蔽性,可以更新後自動關閉,然後調用另外一個假地址。
當然我們也可以利用這個漏洞進行欺騙、隱藏來誘惑管理員來修改我們為管理員等等!大家自己去學習吧!
看了這么多枯燥的東西下面我們再來看看另外一個好玩的漏洞,在百渡里搜索」傳奇留言薄「找幾個免費的留言本進去,找到他的登陸頁面,我找到的一個是:
http://www.conanshome.com/guestbook/login.asp
我們再來看看下面這個連接:
http://www.conanshome.com/guestbook/admin.asp?adminid=admin
哈,怎麼我們就闖入後台了!!!
什麼原因,自己去琢磨吧!
後記:腳本的攻擊可以說是防不勝防的,我們所要做的只能是提高編寫程序的嚴謹態度,人為的因素在腳本攻擊中是最重要的!
聲明:本文提到的漏洞都有一定的攻擊性,我們的目的是探討技術,搞破壞的是小人!所造成的一切後果於作者無關!由於作者水平有限,文中難免有錯誤之處,歡迎指出!

F. 個人網站怎麼有效的防止黑客攻擊高分。。

我把大致的應用安全框架告訴你,編程常常會遇到的問題:
1、黑客通常會通過跨站腳本(XSS)和SQL注入入侵網站的。
危害:
(1)跨站腳本漏洞通常會導致網站被掛馬,篡改等問題,具體情況你可以看網路中關於跨站的描述比較詳細。
(2)SQL注入漏洞會得到你網站後台資料庫內部數據信息,通常黑客會看你管理員用戶名密碼等信息(即使你的資料庫信息可能用md5等加密過,但也有很多破解方法)。
(3)其他,則應該注意網站程序自身的錯誤問題,如惡意傳參,輸入是否限制問題(如只能輸入整數數字的輸入英文),伺服器反饋一些信息可能被黑客利用。
2、防範方法:
(1)跨站要防止所有從資料庫中得到的信息要輸出時的格式化,這個重點在輸出。詳細情況你還是看網路吧,內容比較多,大致就是防止臘顫洞用戶輸入<,>等標記性語言,伺服器在顯示輸出時會被翻譯為可執行的代碼。由於程序問題,可能有時也要關心輸入,如表單的提交的變數直接輸出的網頁上會立即被執行。通過函數接收資料庫欄位,過程中將信息中包含標記的語言轉換為文本標記如將空格轉換為 後輸出,具體你對應的從網上洞枯找,在這說不清,而且有礙於你全面的理解。
(2)SQL注入,防止動態傳參的地址欄輸入sql語句,如http://xxxx.jsp?id=1這類的有參數傳到select語句的地址欄。通過函數接收變數(如sqlcheck(id))如發現sql關鍵字則返回提示信息,而不是黑客要的輪枯ture或false這類執行後的sql信息。最好完全限制,如只能輸入正整數,其他一律報錯中斷。

以上是個人開發網站時的一些經驗,也經過各種安全掃描設備的驗證,只要抓住以上兩個大頭,因為這是問題最多的兩點,也是普遍存在的。詳細信息你應該有側重的再去搜索,因為每一方面的內容都夠多的。

另外,硬體伺服器器和操作系統能給你提供的安全服務非常有限,應用安全才是問題關鍵。

G. jsp頁面上寫腳本語言

你的具體需求我有些不太明白。

JSP是運行在服務端、它生成的頁面呈現在客戶端、其中的腳本也是運行在客戶端,如果所說「列印」是指由運行在客戶端的腳本調用客戶端瀏覽器提供的列印介面、將頁面上的數據列印到客戶端的列印機上的話,那麼列印請求只能由客戶端腳本完成。

所以你在JSP里分頁的結果,需要通過刷新頁面來將數據重新傳遞到客戶端、再由客戶端腳本重新生成列印請求(因此打10頁用戶會需要在列印對話框里點10次確定)。這顯然不是好方式,但這么做實現起來稍微容易點,因為分頁顯示有現成的控制項可用,做好點的話可以把每次客戶端刷新頁面等無法迴避的問題盡可能控制在一個尚可忍受的程度。

也可考慮JSP將所有數據一次性地封裝在生成的頁面里,但使用html技術並不全部顯示出來,而是由客戶端腳本提供用戶界面的交互操作,如分頁顯示或一次性列印用戶指定的某部分數據,其間無須再向服務端請求數據。此方式明顯比較接近「理想」的方式,但一次性把大量數據在一個頁面發送會需要很長時間,而且客戶端瀏覽器的資源佔用會成為嚴重問題,此外腳本處理本身效率低,效果不好。

更好些的選擇是用ajax技術,在不重載頁面的情況下只在後台向服務端jsp請求單個頁面中的那些數據,然後由客戶端腳本呈現在同一個頁面中、或者列印。此方式好處是比較符合你的要求,而且客戶端操作也不太會有過多延遲什麼的不良體驗,但是客戶端腳本的編程量較多,分頁顯示等稍微復雜些的工作必須要考慮不同瀏覽器的兼容性(但好消息是現在兼容性的麻煩比早前幾年有了少許改善、此外也有好幾種框架性質的javascript代碼庫也一並支持ajax的可以在一定程度上減輕工作量)。

平心而論這問題分數200實在不少,但寫具體代碼一來要和你應用本身緊密結合、二來那確實是個該考慮收人民幣的事(寫的話也真難用簡短的話把涉及的幾個重要些的問題都說清),所以沒法提供具體代碼了。敬請諒解。

網上ajax的資料和範例很多,前台腳本其實和後台使用的具體技術關系不大,樓主不妨自己琢磨一下。理解起來不難,但真想把實際問題解決得漂亮點…呃…需要不少時間和耐心啊!!祝好運吧!

熱點內容
早春開花植物如何配置 發布:2025-02-13 19:22:19 瀏覽:50
安卓怎麼獲得root錄音許可權 發布:2025-02-13 19:21:22 瀏覽:170
訪問學者留學基金委 發布:2025-02-13 19:21:13 瀏覽:430
制定編程 發布:2025-02-13 19:11:39 瀏覽:58
微商相冊安卓與蘋果機哪個方便 發布:2025-02-13 19:10:02 瀏覽:6
優酷視頻緩存設置 發布:2025-02-13 19:04:03 瀏覽:156
如何識別網路配置 發布:2025-02-13 19:04:02 瀏覽:300
android簽名漏洞 發布:2025-02-13 18:59:47 瀏覽:255
解壓高達 發布:2025-02-13 18:58:56 瀏覽:518
蘋果怎麼對備忘錄加密碼 發布:2025-02-13 18:44:19 瀏覽:72