1. 程式人生 > 實用技巧 >【Java】編寫Java應用程式,完成從鍵盤輸入圓的半徑,求圓的周長和麵積並輸出結果的功能

【Java】編寫Java應用程式,完成從鍵盤輸入圓的半徑,求圓的周長和麵積並輸出結果的功能

一 盜鏈

1.1 盜鏈概述

盜鏈指的是在自己的介面展示非本伺服器上的內容,通過技術手段獲得其他伺服器的資源。繞過他人資源展示頁面,在自己頁面向用戶提供此內容,從而減輕自己伺服器的負擔,因為真實的空間和流量來自其他伺服器。 因此,通常為了避免被盜鏈,通常Web伺服器建議配置防盜鏈,其主要防盜鏈思路是能區別哪些請求是非正常使用者請求。

二 防盜鏈

2.1 防盜鏈配置

語法:valid_referers none | blocked | server_names | string ...; 預設值:—— 可配置段:server, location

2.2 環境準備




主機
域名

IP

備註
nginx01 good.linuxds.com 172.24.10.21 被盜方
nginx02 steal.uclouda.com 172.24.10.22 盜鏈方
新增解析:/etc/hosts
  1 172.24.10.21	good.odocker.com
2 172.24.10.22 steal.uclouda.com
3 [[email protected] ~]# nginx -V
4 nginx version: nginx/1.16.1

2.3 模擬盜鏈

  1 [[email protected]
~]# vi /etc/nginx/conf.d/good.conf #建立模擬被盜方配置
2 server {
3 listen 80;
4 charset utf-8;
5 server_name good.linuxds.com;
6 location / {
7 root /usr/share/nginx/good;
8 index index.html;
9 access_log /var/log/nginx/good.access.log main;
10 error_log /var/log/nginx/good.error.log warn;
11 }
12 }
  1 [[email protected] ~]# mkdir -p /usr/share/nginx/good/images
2 [[email protected] ~]# echo '<h1>Good</h1>' > /usr/share/nginx/good/index.html
3 [[email protected] ~]# ll /usr/share/nginx/good/images #上傳一張測試圖片
4 total 60K
5 -rw-r--r-- 1 root root 4.8K Mar 11 16:27 baidu.png

  1 [[email protected] ~]# vi /etc/nginx/conf.d/steal.conf	#建立盜鏈方配置
2 server {
3 listen 80;
4 charset utf-8;
5 server_name steal.uclouda.com;
6 location / {
7 root /usr/share/nginx/steal;
8 index index.html;
9 access_log /var/log/nginx/steal.access.log main;
10 error_log /var/log/nginx/steal.error.log warn;
11 }
12 }
  1 [[email protected] ~]# mkdir -p /usr/share/nginx/steal
2 [[email protected] ~]# vi /usr/share/nginx/steal/index.html
3 <html>
4 <body>
5 <br>盜鏈圖片</br>
6 <img src="http://good.linuxds.com/images/baidu.png">
7 </body>
8 </html>
  1 [[email protected] ~]# nginx -t -c /etc/nginx/nginx.conf	#檢查配置檔案
2 [[email protected] ~]# nginx -s reload #過載配置檔案
3 [[email protected] ~]# nginx -t -c /etc/nginx/nginx.conf #檢查配置檔案
4 [[email protected] ~]# nginx -s reload #過載配置檔案
瀏覽器訪問:http://good.linuxds.com/images/baidu.png 瀏覽器訪問盜鏈網站:http://steal.uclouda.com/

2.4 防止盜鏈配置01

  1 [[email protected] ~]# vi /etc/nginx/conf.d/good.conf
2 server {
3 listen 80;
4 charset utf-8;
5 server_name good.linuxds.com;
6 location / {
7 root /usr/share/nginx/good;
8 index index.html;
9 access_log /var/log/nginx/good.access.log main;
10 error_log /var/log/nginx/good.error.log warn;
11 valid_referers none blocked good.linuxds.com;
12 if ($invalid_referer) {
13 return 403;
14 }
15 }
16 }
  1 [[email protected] ~]# nginx -t -c /etc/nginx/nginx.conf	#檢查配置檔案
2 [[email protected] ~]# nginx -s reload #過載配置檔案
配置釋義: valid_referers:此關鍵字定義了白名單,即本機自身訪問允許; invalid_referer:此為內建變數,通過判斷上一行中的valid_referers值會返回0或者1,
  • none代表請求頭中沒有referer資訊,這一般是直接在瀏覽器輸入圖片網址;
  • blocked代表被防火牆過濾標記過的請求。如果訪問來源不在白名單內,則返回403錯誤
  • 瀏覽器訪問:http://good.linuxds.com/images/baidu.png 瀏覽器訪問盜鏈網站:http://steal.uclouda.com/ 如上所示:已成功配置防盜鏈。

    2.5 防盜鏈配置02

      1 [[email protected] ~]# vi /etc/nginx/conf.d/good.conf
    2 server {
    3 listen 80;
    4 charset utf-8;
    5 server_name good.linuxds.com;
    6 location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|flv|mp4|ico)$ { #針對特定檔案型別
    7 valid_referers none blocked *.linuxds.com linuxds.com;
    8 access_log /var/log/nginx/good.access.log main;
    9 error_log /var/log/nginx/good.error.log warn;
    10 if ($invalid_referer) {
    11 rewrite ^/ https://ss3.bdstatic.com/70cFv8Sh_Q1YnxGkpoWK1HF6hhy/it/u=1767274412,1868768041&fm=26&gp=0.jpg;
    12 }
    13 }
    14 }
    配置釋義: rewrite:判斷如果不是白名單第五行則進行重定向到自定義的固定連結。 瀏覽器訪問盜鏈網站:http://steal.uclouda.com/