本文目錄一覽:
- 1、java怎樣破解sessio為httponly
- 2、asp項目中如何防止xss攻擊
- 3、如何修改java虛擬機內存
- 4、java的框架(比如struts2)對於xss攻擊、sql注入等黑客方式有防禦么?
- 5、JAVA堆棧在哪裡設置?
- 6、java多線程開多少上限量。
java怎樣破解sessio為httponly
Session cookies (或者包含JSSESSIONID的cookie)是指用來管理web應用的session會話的cookies.這些cookie中保存特定使用者的session ID標識,而且相同的session ID以及session生命周期內相關的數據也在服務器端保存。在web應用中最常用的session管理方式是通過每次請求的時候將cookies傳送到服務器端來進行session識別。
HttpOnly標識是一個可選的、避免利用XSS(Cross-Site Scripting)來獲取session cookie的標識。XSS攻擊最常見一個的目標是通過獲取的session cookie來劫持受害者的session;使用HttpOnly標識是一種很有用的保護機制。
asp項目中如何防止xss攻擊
asp中防止xss攻擊的方法如下:
確保所有輸出內容都經過 HTML 編碼。
禁止用戶提供的文本進入任何 HTML 元素屬性字符串。
根據 msdn.microsoft.com/library/3yekbd5b 中的概述,檢查 Request.Browser,以阻止應用程序使用 Internet Explorer 6。
了解控件的行為以及其輸出是否經過 HTML 編碼。如果未經過 HTML 編碼,則對進入控件的數據進行編碼。
使用 Microsoft 防跨站點腳本庫 (AntiXSS) 並將其設置為您的默認 HTML 編碼器。
在將 HTML 數據保存到數據庫之前,使用 AntiXSS Sanitizer 對象(該庫是一個單獨的下載文件,將在下文中介紹)調用 GetSafeHtml 或 GetSafeHtmlFragment;不要在保存數據之前對數據進行編碼。
對於 Web 窗體,不要在網頁中設置 EnableRequestValidation=false。遺憾的是,Web 上的大多數用戶組文章都建議在出現錯誤時禁用該設置。該設置的存在是有原因的,例如,如果向服務器發送回“X”之類的字符組合,該設置將阻止請求。如果您的控件將 HTML 發送回服務器並收到圖 5 所示的錯誤,那麼理想情況下,您應該在將數據發布到服務器之前對數據進行編碼。這是 WYSIWYG 控件的常見情形,現今的大多數版本都會在將其 HTML 數據發布回服務器之前對該數據進行正確編碼。
對於 ASP.NET MVC 3 應用程序,當您需要將 HTML 發布回模型時,不要使用 ValidateInput(false) 來關閉請求驗證。只需向模型屬性中添加 [AllowHtml] 即可,如下所示:
public class BlogEntry
{
public int UserId {get;set;}
[AllowHtml]
public string BlogText {get;set;}
}
如何修改java虛擬機內存
一、設置JVM內存設置
1. 設置JVM內存的參數有四個:
-Xmx Java Heap最大值,默認值為物理內存的1/4,最佳設值應該視物理內存大小及計算機內其他內存開銷而定;
-Xms Java Heap初始值,Server端JVM最好將-Xms和-Xmx設為相同值,開發測試機JVM可以保留默認值;
-Xmn Java Heap Young區大小,不熟悉最好保留默認值;
-Xss 每個線程的Stack大小,不熟悉最好保留默認值;
2. 如何設置JVM內存分配:
(1)當在命令提示符下啟動並使用JVM時(只對當前運行的類Test生效):
java -Xmx128m -Xms64m -Xmn32m -Xss16m Test
(2)當在集成開發環境下(如eclipse)啟動並使用JVM時:
a. 在eclipse根目錄下打開eclipse.ini,默認內容為(這裡設置的是運行當前開發工具的JVM內存分配):
-vmargs
-Xms40m
-Xmx256m
-vmargs表示以下為虛擬機設置參數,可修改其中的參數值,也可添加-Xmn,-Xss,另外,eclipse.ini內還可以設置非堆內存,如:-XX:PermSize=56m,-XX:MaxPermSize=128m。
此處設置的參數值可以通過以下配置在開發工具的狀態欄顯示:
在eclipse根目錄下創建文件options,文件內容為:org.eclipse.ui/perf/showHeapStatus=true
修改eclipse根目錄下的eclipse.ini文件,在開頭處添加如下內容:
-debug
options
-vm
javaw.exe
重新啟動eclipse,就可以看到下方狀態條多了JVM信息。
b. 打開eclipse-窗口-首選項-Java-已安裝的JRE(對在當前開發環境中運行的java程序皆生效)
編輯當前使用的JRE,在缺省VM參數中輸入:-Xmx128m -Xms64m -Xmn32m -Xss16m
c. 打開eclipse-運行-運行-Java應用程序(只對所設置的java類生效)
選定需設置內存分配的類-自變量,在VM自變量中輸入:-Xmx128m -Xms64m -Xmn32m -Xss16m
註:如果在同一開發環境中同時進行了b和c設置,則b設置生效,c設置無效,如:
開發環境的設置為:-Xmx256m,而類Test的設置為:-Xmx128m -Xms64m,則運行Test時生效的設置為:
-Xmx256m -Xms64m
(3)當在服務器環境下(如Tomcat)啟動並使用JVM時(對當前服務器環境下所以Java程序生效):
a. 設置環境變量:
變量名:CATALINA_OPTS
變量值:-Xmx128m -Xms64m -Xmn32m -Xss16m
b. 打開Tomcat根目錄下的bin文件夾,編輯catalina.bat,將其中的�TALINA_OPTS%(共有四處)替換為:-Xmx128m -Xms64m -Xmn32m -Xss16m
java的框架(比如struts2)對於xss攻擊、sql注入等黑客方式有防禦么?
框架本身並不具有這些功能。
防止xss,sql等的攻擊大部分需要程序員自己注意。
sql注入本身就是sql語句寫法的漏洞導致。
xss攻擊的防禦還是需要對非法字符串進行判斷過濾。
JAVA堆棧在哪裡設置?
堆棧設置無疑是要適當理解和設置的最重要環節。 過度嚴格的內存設置要麼使Tomcat運行很慢,要麼報OutOfMemoryError的錯誤信息,使工作不正常。內存設置過大,要麼因不能平均分配如此大量的內存而無法啟動JVM,要麼能啟動運行正常,但卻耗用了超出所需的過量計算機內存,而且計算機上的其他軟件也無法運行(因為必要的內存已分配給Tomcat)。 之前關於JVM設置選項詳解中顯示的-Xmx和-Xms設置值為384MB,但這不一定是計算機的適用內存,即使是適用的,也未必就是Tomcat所要的內存大小。到底多大內存是最適合的,需要經驗來決定不同內存的大小。
以小的和大的啟動堆棧內存配置Tomcat JVM,都會引髮網頁響應時間超出Java VM堆棧的最大值的某種問題(如果需要堆棧也跟着增長)。 因為Tomcat正在提供響應時會佔用大量的時間重新分配內存,所以如果您不希望性能出現類似的問題,一定要讓-Xms和Xmx開關值就是所需內存的相同大小,從而保證JVM在操作過程中從不需要重新分配堆棧內存。
在調用駐留於CATALINA_HOME/bin的Tomcat腳本之前,可以設置JAVA_OPTS環境變量值,以設置這些JVM啟動的任意開關。將JAVA_OPTS設置成包含任意開關、以空格分開的字符串。
為了可以連接遠程調試器,且想阻調試模式啟動Tomcat JVM,那麼可以按如下方式設置JAVA_OPTS環境變量:
JAVA_OPTS=”-Xdebug -Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=n”
以上語句允許您通過Tomcat主機上的8000端口連接一個JPDA遠程調試器客戶端(例如,任何Java IDE),並調試Tomcat JVM中運行的任何代碼。您可隨意定製所喜歡的端口號。
如果想通過JMX遠程客戶端連接到Tomcat以實現本地管理和,或監控,請使用下列設置:
JAVA_OPTS=”-Dcom.sun.management.jmxremote=true
-Dcom.sun.management.jxremote.ssl=false
-Dcom.sun.managerment.jmxremote.authenticate=false”
這些設置允許您在同一台運行Tomcat的機器上使用JMX控制台(如JDK自帶的jconsole),如果想遠程使用JMX控制台,則使用下列這些設置:
JAVA_OPTS=”-Dcom.sun.management.jmxremote.port=8080
-Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.authenticate=false
-Dcom.sun.management.jmxmote.password.file=/path/to/pw/file”
這些設置允許您從另一台機器上用TCP 8008端口連接到Tomcat JVM上。 您也可以設置-Dcom.sun.management.jmxremote.authenticate=truen,然後在JMX遠程口令文件中設置-Dcom.sun.management.jmxmote.password.file=/path/to/pw/file路徑,從而只有您及您授權的用戶可以連接到Tomcat JVM上。
java多線程開多少上限量。
1。java的線程開啟,默認的虛擬機會分配1M的內存,但是在4G的windows上線程最多也就開到300多 ,是因為windows本身的一些限制導致。
2。虛擬機給每個線程分配的內存(棧空間)是由虛擬機參數-Xss來指定的,在不同平台上對應的默認大小可以 在oracle的官方文檔上查詢到:
/optionX.html
其中,Linux64位默認Xss值為256K,並非1M或10M
3。一個Java進程可以啟動的線程數可以通過如下公式計算:
(系統剩餘內存 – 最大堆容量Xmx – 最大方法區容量MaxPermSize)/ 最大棧空間Xss
這樣,4G的服務器單個進程可以開多少線程,可以粗略計算出來,大概是5000個線程。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/157012.html