中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當前位置: 首頁 > news >正文

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

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

文章目錄

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

一、重定向進階功能

1.1 重定向回上一個頁面

有時候,我們在某些界面執(zhí)行操作一些操作后,不希望界面跳轉(zhuǎn)到其他指定網(wǎng)頁上,而希望網(wǎng)頁能重定向為用戶剛才瀏覽的界面,以便繼續(xù)完成操作,例如在某個頁面需要登錄后才能進行操作,我們希望登錄后不跳轉(zhuǎn)到主頁界面,而是重定向為剛才操作的頁面,從而能夠方便的繼續(xù)剛才未完成的操作。

  1. 獲取上一個頁面的URL
    要重定向為上一個頁面,最關(guān)鍵的是要獲取上一個頁面的URL。獲取的方法主要有兩種:
  • HTTP referer
    是一個用來記錄請求發(fā)源地址的HTTP首部字段,即訪問來源。當用戶在某個網(wǎng)站點擊鏈接時,瀏覽器發(fā)送請求的數(shù)據(jù)中包含的HTTP_REFERER字段記錄了用戶所在的原站點URL。
    在Flask中,我們可以通過request.referrer進行獲取。
return redirect(request.referrer)# 為了防止用戶出于隱私保護設置清除了或修改了該字段,添加備用選項
return redirect(request.referrer or url_for('index'))  
  • 查詢參數(shù)
    除了從referer中獲取之外,我們還可以在URL中手動加入包含當前頁面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"))# 添加備選項return rediect(request.args.get("next"), url_for("index")))

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

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 對URL進行安全驗證

由于referer和next容易被篡改的特性,如果不對這些值進行驗證,則會形成開放重定向漏洞。
URL驗證函數(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))

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

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

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

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

2.1 什么是Ajax

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

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

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

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

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

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

jQuery中文網(wǎng)

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

三、服務器推送

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

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

四、web安全規(guī)范

1. 注入攻擊

重點注意SQL注入攻擊

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

相關(guān)文章:

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