国产亚洲精品福利在线无卡一,国产精久久一区二区三区,亚洲精品无码国模,精品久久久久久无码专区不卡

當(dāng)前位置: 首頁(yè) > news >正文

網(wǎng)站開發(fā)費(fèi)入什么費(fèi)用中國(guó)十大企業(yè)培訓(xùn)公司

網(wǎng)站開發(fā)費(fèi)入什么費(fèi)用,中國(guó)十大企業(yè)培訓(xùn)公司,高校門戶網(wǎng)站建設(shè)需要多少錢,微信小程序怎么做網(wǎng)站文章目錄 一、重定向進(jìn)階功能1.1 重定向回上一個(gè)頁(yè)面1.2 對(duì)URL進(jìn)行安全驗(yàn)證 二、使用Ajax技術(shù)發(fā)送異步請(qǐng)求2.1 什么是Ajax2.2使用jQuery發(fā)送Ajax請(qǐng)求 三、服務(wù)器推送四、web安全規(guī)范1. 注入攻擊2. XSS攻擊3. CSRF攻擊 一、重定向進(jìn)階功能 1.1 重定向回上一個(gè)頁(yè)面 有時(shí)候&#…

文章目錄

      • 一、重定向進(jìn)階功能
        • 1.1 重定向回上一個(gè)頁(yè)面
        • 1.2 對(duì)URL進(jìn)行安全驗(yàn)證
      • 二、使用Ajax技術(shù)發(fā)送異步請(qǐng)求
        • 2.1 什么是Ajax
        • 2.2使用jQuery發(fā)送Ajax請(qǐng)求
      • 三、服務(wù)器推送
      • 四、web安全規(guī)范
        • 1. 注入攻擊
        • 2. XSS攻擊
        • 3. CSRF攻擊

一、重定向進(jìn)階功能

1.1 重定向回上一個(gè)頁(yè)面

有時(shí)候,我們?cè)谀承┙缑鎴?zhí)行操作一些操作后,不希望界面跳轉(zhuǎn)到其他指定網(wǎng)頁(yè)上,而希望網(wǎng)頁(yè)能重定向?yàn)橛脩魟偛艦g覽的界面,以便繼續(xù)完成操作,例如在某個(gè)頁(yè)面需要登錄后才能進(jìn)行操作,我們希望登錄后不跳轉(zhuǎn)到主頁(yè)界面,而是重定向?yàn)閯偛挪僮鞯捻?yè)面,從而能夠方便的繼續(xù)剛才未完成的操作。

  1. 獲取上一個(gè)頁(yè)面的URL
    要重定向?yàn)樯弦粋€(gè)頁(yè)面,最關(guān)鍵的是要獲取上一個(gè)頁(yè)面的URL。獲取的方法主要有兩種:
  • HTTP referer
    是一個(gè)用來記錄請(qǐng)求發(fā)源地址的HTTP首部字段,即訪問來源。當(dāng)用戶在某個(gè)網(wǎng)站點(diǎn)擊鏈接時(shí),瀏覽器發(fā)送請(qǐng)求的數(shù)據(jù)中包含的HTTP_REFERER字段記錄了用戶所在的原站點(diǎn)URL。
    在Flask中,我們可以通過request.referrer進(jìn)行獲取。
return redirect(request.referrer)# 為了防止用戶出于隱私保護(hù)設(shè)置清除了或修改了該字段,添加備用選項(xiàng)
return redirect(request.referrer or url_for('index'))  
  • 查詢參數(shù)
    除了從referer中獲取之外,我們還可以在URL中手動(dòng)加入包含當(dāng)前頁(yè)面URL的查詢參數(shù),一般命名為next
@app.route('/index')
def index():return '<a href="%s">登陸</a>' % url_for("login", next=request.full_path)@app.route("/login")
def login():執(zhí)行登陸操作......return rediect(request.args.get("next"))# 添加備選項(xiàng)return rediect(request.args.get("next"), url_for("index")))

通用重定向函數(shù),避免重復(fù)代碼

def redirect_back(default="hello", **kwargs):for target in request.args.get('next'), request.referrer:if target:return redirect(target)return redirect(url_for(default, **kwargs))@app.route("/login")
def login:return redirect_back()
1.2 對(duì)URL進(jìn)行安全驗(yàn)證

由于referer和next容易被篡改的特性,如果不對(duì)這些值進(jìn)行驗(yàn)證,則會(huì)形成開放重定向漏洞。
URL驗(yàn)證函數(shù)

for urllib.parse import urlparse, urljoin
from flask import requestdef is_safe_url(target):ref_url = urlparse(request.host_url)test_url = ulparse(urljoin(request.host_url, target))return test_url.scheme in ("http", "https") and ref_ul.netloc == test_url.netloc# 在重定向通用代碼中使用
def redirect_back(default="hello", **kwargs):for target in request.args.get('next'), request.referrer:if not target:continueif is_safe_ul(target):return redirect(target)return redirect(url_for(default, **kwargs))

這段代碼定義了一個(gè)名為 is_safe_url() 的函數(shù),用于判斷給定的 URL 是否安全。

具體來說,is_safe_url() 函數(shù)接受一個(gè)參數(shù) target,表示要檢查的 URL。在函數(shù)體內(nèi),首先使用 urlparse() 函數(shù)從當(dāng)前請(qǐng)求的 request.host_url 中解析出引用 URL(即當(dāng)前頁(yè)面的 URL),并將其賦值給 ref_url 變量。然后,使用 urljoin() 函數(shù)將 request.host_url 和 target 合并成完整的 URL,并使用 urlparse() 函數(shù)解析出測(cè)試 URL,并將其賦值給 test_url 變量。

最后,函數(shù)會(huì)判斷 test_url 是否安全。具體來說,它會(huì)檢查 test_url 的協(xié)議是否為 “http” 或 “https”,并且檢查 test_url 的域名與 ref_url 的域名是否相同。如果這兩個(gè)條件都滿足,那么 is_safe_url() 函數(shù)將返回 True,表示 URL 是安全的;否則,返回 False,表示 URL 不安全。

二、使用Ajax技術(shù)發(fā)送異步請(qǐng)求

2.1 什么是Ajax

Ajax(Asynchronous JavaScript and XML)是一種在網(wǎng)頁(yè)中使用的技術(shù),通過在后臺(tái)與服務(wù)器進(jìn)行異步通信,實(shí)現(xiàn)頁(yè)面內(nèi)容的局部更新,而無需刷新整個(gè)頁(yè)面。

傳統(tǒng)的網(wǎng)頁(yè)交互是同步的,即用戶發(fā)起請(qǐng)求后,需要等待服務(wù)器返回完整的頁(yè)面并刷新整個(gè)頁(yè)面才能看到結(jié)果。而使用 Ajax 技術(shù),可以在不刷新整個(gè)頁(yè)面的情況下,通過發(fā)送異步請(qǐng)求,獲取服務(wù)器返回的數(shù)據(jù),并使用 JavaScript 動(dòng)態(tài)更新頁(yè)面的部分內(nèi)容。

Ajax 基于以下幾個(gè)核心的技術(shù):

  • XMLHttpRequest 對(duì)象:用于在后臺(tái)與服務(wù)器進(jìn)行數(shù)據(jù)交換。通過創(chuàng)建 XMLHttpRequest 對(duì)象,可以發(fā)送請(qǐng)求和接收服務(wù)器返回的數(shù)據(jù)。
  • JavaScript 和 DOM 操作:通過 JavaScript 代碼和 DOM(文檔對(duì)象模型)操作,可以動(dòng)態(tài)地修改頁(yè)面的內(nèi)容,將服務(wù)器返回的數(shù)據(jù)插入到指定的位置,更新頁(yè)面的部分內(nèi)容,而不需要刷新整個(gè)頁(yè)面。
  • 異步請(qǐng)求和回調(diào)函數(shù):Ajax 請(qǐng)求是異步的,意味著瀏覽器在發(fā)送請(qǐng)求后,不會(huì)阻塞頁(yè)面的其他操作,而是繼續(xù)執(zhí)行后續(xù)的 JavaScript 代碼。當(dāng)服務(wù)器返回?cái)?shù)據(jù)后,可以通過回調(diào)函數(shù)處理這些數(shù)據(jù),更新頁(yè)面或執(zhí)行其他操作。

Ajax 技術(shù)它可以用于實(shí)現(xiàn)實(shí)時(shí)搜索、動(dòng)態(tài)加載內(nèi)容、表單驗(yàn)證、無刷新提交等功能。

2.2使用jQuery發(fā)送Ajax請(qǐng)求

jQuery中文網(wǎng)

并不一定需要使用jQuery來實(shí)現(xiàn)Ajax請(qǐng)求,可以使用原生的XMLHttpRequest,其它JavaScript框架內(nèi)置的Ajax接口,或這使用更新的Fetch API來發(fā)送異步請(qǐng)求。

三、服務(wù)器推送

服務(wù)器推送(Server Push)是一種在客戶端與服務(wù)器之間建立持久連接,并由服務(wù)器主動(dòng)向客戶端發(fā)送數(shù)據(jù)的通信方式。它與傳統(tǒng)的客戶端發(fā)起請(qǐng)求、服務(wù)器響應(yīng)的模式不同,可以實(shí)現(xiàn)實(shí)時(shí)更新數(shù)據(jù)或推送通知給客戶端,而無需客戶端主動(dòng)請(qǐng)求。
常見實(shí)現(xiàn)方式和協(xié)議:

名稱說明
傳統(tǒng)輪詢在特定的時(shí)間內(nèi),客戶端使用Ajax技術(shù)不斷向服務(wù)器發(fā)起HTTP請(qǐng)求,然后獲取的新的數(shù)據(jù)并更新頁(yè)面。
長(zhǎng)輪詢和傳統(tǒng)相比,如果服務(wù)器一直沒有返回?cái)?shù)據(jù),那就保持連接一直開啟,直到有數(shù)據(jù)時(shí)才返回,取回?cái)?shù)據(jù)后再次發(fā)送另一個(gè)請(qǐng)求。
Server-Sent Events(SSE)SSE 是一種基于 HTTP 的服務(wù)器推送技術(shù)。通過 SSE,服務(wù)器可以使用單向的持久連接向客戶端發(fā)送數(shù)據(jù)??蛻舳送ㄟ^ EventSource API 接收服務(wù)器發(fā)送的事件流,實(shí)現(xiàn)實(shí)時(shí)更新數(shù)據(jù)或接收通知。
WebSocketWebSocket 是一種支持全雙工通信的網(wǎng)絡(luò)協(xié)議,它提供了雙向的持久連接,使得服務(wù)器可以主動(dòng)向客戶端發(fā)送數(shù)據(jù)。通過 WebSocket,服務(wù)器可以實(shí)時(shí)地將更新的數(shù)據(jù)或通知推送給客戶端,而客戶端也可以向服務(wù)器發(fā)送消息。

四、web安全規(guī)范

1. 注入攻擊

重點(diǎn)注意SQL注入攻擊

  • 原理:在編寫SQL語句時(shí),如果直接將用戶傳入的數(shù)據(jù)作為參數(shù)使用字符串拼接的方式插入SQL語句中,那么攻擊者就可以通過注入其它語句來執(zhí)行攻擊操作,進(jìn)行數(shù)據(jù)庫(kù)增刪改查。
  • 防范:使用orm,驗(yàn)證輸入類型,參數(shù)化查詢,轉(zhuǎn)義特殊字符等。
2. XSS攻擊
  • 原理:又稱跨站腳本攻擊,歷史悠久,是注入攻擊的一種,通過將代碼注入被攻擊者的網(wǎng)站中,用戶一但訪問就會(huì)執(zhí)行被注入的惡意腳本。
  • 防范:HTML轉(zhuǎn)義,驗(yàn)證用戶輸入
3. CSRF攻擊
  • 原理:又稱跨站偽造請(qǐng)求,利用用戶已經(jīng)通過身份驗(yàn)證的會(huì)話來執(zhí)行未經(jīng)授權(quán)的操作的攻擊方式。攻擊者通過欺騙用戶訪問惡意網(wǎng)站或點(diǎn)擊惡意鏈接,利用用戶的身份來發(fā)送偽造的請(qǐng)求。
  • 防范:使用正確的HTTP請(qǐng)求,csrf令牌校驗(yàn)。
http://aloenet.com.cn/news/40126.html

相關(guān)文章:

  • 國(guó)外做美食視頻網(wǎng)站有哪些寧波seo外包服務(wù)
  • 柳市網(wǎng)站托管西安網(wǎng)站制作建設(shè)
  • 河池建設(shè)銀行招聘網(wǎng)站百度推廣客服投訴電話
  • 溫州網(wǎng)站設(shè)計(jì)定制市場(chǎng)營(yíng)銷最有效的手段
  • mvc5網(wǎng)站開發(fā)之美電子版可靠的網(wǎng)站優(yōu)化
  • dnf怎么做提卡網(wǎng)站谷歌網(wǎng)站收錄提交入口
  • 山東網(wǎng)站排行免費(fèi)的關(guān)鍵詞優(yōu)化軟件
  • 自己做pc網(wǎng)站建設(shè)愛站網(wǎng)挖掘詞
  • 哪些企業(yè)需要網(wǎng)站建設(shè)的微信客戶管理系統(tǒng)
  • 網(wǎng)站建設(shè)時(shí)如何建立客戶信賴感杭州seo排名
  • 做網(wǎng)站mfdos泰州網(wǎng)站排名seo
  • 網(wǎng)頁(yè)建設(shè)類有哪些軟件seo小白入門教學(xué)
  • 時(shí)時(shí)彩網(wǎng)站怎么建設(shè)關(guān)鍵詞優(yōu)化百家號(hào)
  • WordPress用戶發(fā)表插件廣州seo排名收費(fèi)
  • 做此廣告的網(wǎng)站推廣公司產(chǎn)品
  • 網(wǎng)站建設(shè)做軟件開發(fā)嗎大型網(wǎng)站制作
  • 網(wǎng)站開發(fā)編程html網(wǎng)頁(yè)設(shè)計(jì)模板
  • 網(wǎng)站建站 免費(fèi)運(yùn)營(yíng)網(wǎng)站
  • 本地wordpress 固定連接優(yōu)化模型有哪些
  • 怎么做淘寶優(yōu)惠券的網(wǎng)站杭州10大軟件開發(fā)公司
  • 人民日?qǐng)?bào)客戶端的視頻怎么下載seo全網(wǎng)圖文推廣
  • 企業(yè)網(wǎng)站seo優(yōu)幫云無限制訪問國(guó)外的瀏覽器
  • 做甜點(diǎn)的網(wǎng)站百度手機(jī)seo軟件
  • 建設(shè)培訓(xùn)學(xué)校網(wǎng)站抓取關(guān)鍵詞的軟件
  • 網(wǎng)站開發(fā)類標(biāo)書報(bào)價(jià)明細(xì)表常用的網(wǎng)絡(luò)推廣方式有哪些
  • 網(wǎng)站如何兼容ie6湛江今日頭條新聞
  • 建設(shè)網(wǎng)站的網(wǎng)站江蘇青島seo整站優(yōu)化
  • 戚墅堰常州做網(wǎng)站seo頁(yè)面優(yōu)化公司
  • 做刷贊網(wǎng)站能賺錢嗎sem競(jìng)價(jià)推廣
  • 東莞營(yíng)銷網(wǎng)站建設(shè)重慶seo建站