210327:URL存在http host的頭攻擊漏洞-IDEA EasyCode(代碼神器)-java.io.IOException: Too many open files解決方案-Linu...

一. URL存在http host的頭攻擊漏洞

漏洞詳細信息展示

上述問題出現(xiàn)的原因為在項目中使用了request.getServerName導致漏洞的出現(xiàn)

不要使用request中的serverName排作,也就是說host header可能會在攻擊時被篡改勉痴,依賴request的方法是不可靠的疾掰,形如JSP頭部中的:

String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";

這樣的使用方法就會被漏洞檢測工具查出來,認定有頭攻擊漏洞。

修復方案:

1. 基于tomcat的修復

打開tomcatconf目錄中的server.xml文件奕筐,在<Host>節(jié)點做如下配置:

<Host name="localhost"  appBase="webapps"  
      unpackWARs="true" autoDeploy="true"  
      xmlValidation="false" xmlNamespaceAware="false"> 
    <Alias>10.1.8.158</Alias><!--10.1.8.158 本地局域網(wǎng)-->  
    <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"  
           prefix="localhost_access_log." suffix=".txt"  resolveHosts="false"  
           pattern="%a %A %b %B %h %H %l %m %p %s %S %t %u %U %v %D %T" />  
</Host>

此種方式僅支持Tomcat6.0.x以上版本的修復、網(wǎng)上有基于Filter的修復方式,試了幾個都沒起用蝎困。

漏洞驗證參考文章

二. IDEA EasyCode(代碼神器)

Easycode是idea的一個插件,可以直接對數(shù)據(jù)的表生成entity,controller,service,dao,mapper,無需任何編碼倍啥,簡單而強大禾乘。

1. 安裝(EasyCode)

2. 建立數(shù)據(jù)庫

-- ----------------------------
-- Table structure for user
-- ----------------------------
DROP TABLE IF EXISTS `user`;
CREATE TABLE `user` (
    `id` int(11) NOT NULL,
    `username` varchar(20) DEFAULTNULL,
    `sex` varchar(6) DEFAULTNULL,
    `birthday` date DEFAULTNULL,
    `address` varchar(20) DEFAULTNULL,
    `password` varchar(20) DEFAULTNULL,
    PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
SET FOREIGN_KEY_CHECKS = 1;

3. 在IDEA配置連接數(shù)據(jù)庫

在這個之前,新建一個Springboot項目虽缕,這個應該是比較簡單的始藕。

建好SpringBoot項目之后,如下圖所示氮趋,找到這個Database

按照如下圖所示進行操作:

然后填寫數(shù)據(jù)庫名字伍派,用戶名,密碼剩胁。點擊OK即可诉植。這樣的話,IDEA連接數(shù)據(jù)庫就完事了.

4. 開始生成代碼

在這個里面找到你想生成的表昵观,然后右鍵晾腔,就會出現(xiàn)如下所示的截面。

點擊1所示的位置索昂,選擇你要將生成的代碼放入哪個文件夾中建车,選擇完以后點擊OK即可。

勾選你需要生成的代碼椒惨,點擊OK缤至。

這樣的話就完成了代碼的生成了,生成的代碼如下圖所示:

5. pom.xml

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
    <optional>true</optional>
</dependency>

<!--熱部署-->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-devtools</artifactId>
    <optional>true</optional><!-- 這個需要為 true 熱部署才有效 -->
</dependency>

<!--mybatis-->
<dependency>
    <groupId>org.mybatis.spring.boot</groupId>
    <artifactId>mybatis-spring-boot-starter</artifactId>
    <version>1.3.2</version>
</dependency>

<!-- mysql -->
<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>5.1.47</version>
</dependency>

<!--阿里巴巴連接池-->
<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>druid</artifactId>
    <version>1.0.9</version>
</dependency>

6. Application.yml

server:
  port: 8089
spring:
  datasource:
    url: jdbc:mysql://127.0.0.1:3306/database?useUnicode=true&characterEncoding=UTF-8
    username: root
    password: 123456
    type: com.alibaba.druid.pool.DruidDataSource
    driver-class-name: com.mysql.jdbc.Driver
mybatis:
  mapper-locations: classpath:/mapper/*Dao.xml
  typeAliasesPackage: com.vue.demo.entity

7. 啟動項目

在啟動項目之前,我們需要先修改兩個地方领斥。

在dao層加上@mapper注解

在啟動類里面加上@MapperScan("com.vue.demo.dao")注解嫉到。

啟動項目,測試一下

三. java.io.IOException: Too many open files解決方案

  1. 使用ps -ef |grep java (java代表你程序月洛,查看你程序進程) 查看你的進程ID何恶,記錄ID號,假設進程ID為12

  2. 使用:lsof -p 12 | wc -l 查看當前進程id為12的 文件操作狀況

    執(zhí)行該命令出現(xiàn)文件使用情況為 1052

  3. 使用命令:ulimit -a 查看每個用戶允許打開的最大文件數(shù)

    發(fā)現(xiàn)系統(tǒng)默認的是open files (-n) 1024嚼黔,問題就出現(xiàn)在這里细层。

  4. 然后執(zhí)行:ulimit -n 4096

    open files (-n) 1024 設置成open files (-n) 4096

這樣就增大了用戶允許打開的最大文件數(shù)

另一種解決方案參考文章

四. Linux中切換jdk版本

目前的linux中的jdk是1.8現(xiàn)在想換成1.7的該如何操作呢?

1. 下載jdk1.7

可在官網(wǎng)下載

鏈接:https://pan.baidu.com/s/1ZYQQJ6uO0g4B8Ff4wNLvhQ
提取碼:yxo7

2. 解壓安裝

首先現(xiàn)在/usr目錄下面創(chuàng)建java文件夾 唬涧,然后將jdk-7u80-linux-x64.tar.gz解壓到該目錄下疫赎。

mkdir /usr/java

將下載好的jdk壓縮包導入到/user/java文件夾下(這里可以用CRT自帶的工具進行導入)

對壓縮包進行解壓

tar -zxvf jdk-7u80-linux-x64.tar.gz

刪除原來的jdk版本

rm -f /usr/bin/java 
rm -f /usr/bin/javac
rm -f /etc/alternatives/java
rm -f /etc/alternatives/javac

向/etc/profile中添加以下內(nèi)容

export JAVA_HOME=/usr/java/jdk1.7.0_80
export JAVA_BIN=/usr/java/jdk1.7.0_80/bin
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

export JAVA_HOME JAVA_BIN PATH CLASSPATH

讓/etc/profile文件修改后立即生效 ,可以使用如下命令(./間有空格):

. /etc/profile

之后在查詢jdk版本就已經(jīng)更改完了,可以輸入java -version命令驗證

五. 在Windows安裝運行Kafka

1. 安裝JAVA JDK

1碎节、下載安裝包

http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

注意:根據(jù)32/64位操作系統(tǒng)下載對應的安裝包

2捧搞、添加系統(tǒng)變量:JAVA_HOME=C:\Program Files (x86)\Java\jdk1.8.0_144

2. 安裝Zookeeper

  1. 下載安裝包

    http://zookeeper.apache.org/releases.html#download

  2. 解壓并進入ZooKeeper目錄,如:D:\Kafka\zookeeper-3.4.9\conf

  3. 將“zoo_sample.cfg”重命名為“zoo.cfg”

  4. 打開“zoo.cfg”找到并編輯dataDir=D:\Kafka\zookeeper-3.4.9\tmp(必須以\分割)

  5. 添加系統(tǒng)變量:ZOOKEEPER_HOME=D:\Kafka\zookeeper-3.4.9

  6. 編輯path系統(tǒng)變量狮荔,添加路徑:%ZOOKEEPER_HOME%\bin

  7. 在zoo.cfg文件中修改默認的Zookeeper端口(默認端口2181)

  8. 打開新的cmd胎撇,輸入“zkServer“,運行Zookeeper

  9. 命令行提示如下:說明本地Zookeeper啟動成功

3. 安裝Kafka

1殖氏、 下載安裝包

http://kafka.apache.org/downloads

注意要下載二進制版本

2晚树、 解壓并進入Kafka目錄,筆者:D:\Kafka\kafka_2.12-0.11.0.0

3受葛、 進入config目錄找到文件server.properties并打開

4题涨、 找到并編輯log.dirs=D:\Kafka\kafka_2.12-0.11.0.0\kafka-logs

5、 找到并編輯zookeeper.connect=localhost:2181

6总滩、 Kafka會按照默認,在9092端口上運行巡雨,并連接zookeeper的默認端口:2181

7闰渔、 進入Kafka安裝目錄D:\Kafka\kafka_2.12-0.11.0.0,按下Shift+右鍵铐望,選擇“打開命令窗口”選項冈涧,打開命令行,輸入:

.\bin\windows\kafka-server-start.bat .\config\server.properties

或者

bin\kafka-server-start.sh config\server.properties

注意:注意:不要關了這個窗口正蛙,啟用Kafka前請確保ZooKeeper實例已經(jīng)準備好并開始運行

4. 測試

4.1 創(chuàng)建主題

D:\develop_tools\kafka\kafka_2.11-2.2.0\bin\windows 目錄督弓,打開新窗口

創(chuàng)建一個名稱為 test 主題乒验,命令如下:

kafka-topics.bat --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic test

如圖所示:

4.2 查看主題

D:\develop_tools\kafka\kafka_2.11-2.2.0\bin\windows 目錄愚隧,打開新窗口,輸入命令:

kafka-topics.bat --list --zookeeper localhost:2181

4.3 創(chuàng)建生產(chǎn)者

D:\develop_tools\kafka\kafka_2.11-2.2.0\bin\windows 目錄锻全,打開新窗口狂塘,輸入命令:

kafka-console-producer.bat --broker-list localhost:9092 --topic test

4.4 創(chuàng)建消費者

D:\develop_tools\kafka\kafka_2.11-2.2.0\bin\windows 目錄录煤,打開新窗口,輸入命令:

kafka-console-consumer.bat --bootstrap-server localhost:9092 --topic test --from-beginning

4.5 數(shù)據(jù)測試

生產(chǎn)者 窗口輸入數(shù)據(jù)荞胡,在 消費者 接收到數(shù)據(jù)

參考Kafka2.2.0 在 Windows 安裝(入門)

參考在Windows安裝運行Kafka

六. Oracle中查詢某用戶下的表,視圖等

select * from all_tab_comments -- 查詢所有用戶的表,視圖等妈踊。

select * from user_tab_comments -- 查詢本用戶的表,視圖等。

select * from all_col_comments  --查詢所有用戶的表的列名和注釋泪漂。

select * from user_col_comments -- 查詢本用戶的表的列名和注釋廊营。

select * from all_tab_columns --查詢所有用戶的表的列名等信息。

select * from user_tab_columns --查詢本用戶的表的列名等信息萝勤。
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末赘风,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子纵刘,更是在濱河造成了極大的恐慌邀窃,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,729評論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件假哎,死亡現(xiàn)場離奇詭異瞬捕,居然都是意外死亡,警方通過查閱死者的電腦和手機舵抹,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,226評論 3 399
  • 文/潘曉璐 我一進店門肪虎,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人惧蛹,你說我怎么就攤上這事扇救。” “怎么了香嗓?”我有些...
    開封第一講書人閱讀 169,461評論 0 362
  • 文/不壞的土叔 我叫張陵迅腔,是天一觀的道長。 經(jīng)常有香客問我靠娱,道長沧烈,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 60,135評論 1 300
  • 正文 為了忘掉前任像云,我火速辦了婚禮锌雀,結果婚禮上,老公的妹妹穿的比我還像新娘迅诬。我一直安慰自己腋逆,他們只是感情好,可當我...
    茶點故事閱讀 69,130評論 6 398
  • 文/花漫 我一把揭開白布侈贷。 她就那樣靜靜地躺著惩歉,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上柬泽,一...
    開封第一講書人閱讀 52,736評論 1 312
  • 那天慎菲,我揣著相機與錄音,去河邊找鬼锨并。 笑死露该,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的第煮。 我是一名探鬼主播解幼,決...
    沈念sama閱讀 41,179評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼包警!你這毒婦竟也來了撵摆?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 40,124評論 0 277
  • 序言:老撾萬榮一對情侶失蹤害晦,失蹤者是張志新(化名)和其女友劉穎特铝,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體壹瘟,經(jīng)...
    沈念sama閱讀 46,657評論 1 320
  • 正文 獨居荒郊野嶺守林人離奇死亡鲫剿,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,723評論 3 342
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了稻轨。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片灵莲。...
    茶點故事閱讀 40,872評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖殴俱,靈堂內(nèi)的尸體忽然破棺而出政冻,到底是詐尸還是另有隱情,我是刑警寧澤线欲,帶...
    沈念sama閱讀 36,533評論 5 351
  • 正文 年R本政府宣布明场,位于F島的核電站,受9級特大地震影響询筏,放射性物質發(fā)生泄漏榕堰。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 42,213評論 3 336
  • 文/蒙蒙 一嫌套、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧圾旨,春花似錦踱讨、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,700評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春帚稠,著一層夾襖步出監(jiān)牢的瞬間谣旁,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,819評論 1 274
  • 我被黑心中介騙來泰國打工滋早, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留榄审,地道東北人。 一個月前我還...
    沈念sama閱讀 49,304評論 3 379
  • 正文 我出身青樓杆麸,卻偏偏與公主長得像搁进,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子昔头,可洞房花燭夜當晚...
    茶點故事閱讀 45,876評論 2 361

推薦閱讀更多精彩內(nèi)容