整合營銷服務商

          電腦端+手機端+微信端=數據同步管理

          免費咨詢熱線:

          PHP+Html 防止XSS跨站腳本攻擊 目前最主流的策略

          里主要是介紹下防止XSS的時機判斷,讓你明白XSS實質應該防止的位置

          什么是XSS攻擊

          它指的是惡意攻擊者往Web頁面里插入惡意html代碼,當用戶瀏覽該頁之時,嵌入其中Web里面的html代碼會被執行,從而達到惡意攻擊用戶的特殊目的。

          XSS是黑客,惡意用戶常用的注入漏洞,也是網站安全要考慮的問題

          以Think PHP3.2框架為例

          框架為了防止XSS(跨站腳本, cross site script)危害. 用戶通過script腳本, 控制web頁面的行為. 采用的策略: 在接收到瀏覽器端數據后, 將數據轉換為HTML實體編碼

          這是框架的默認策略, 很low, 現在幾乎不用該策略

          在接收數據時, 就完成實體編碼轉換. 主要的問題, “數據庫中存儲的不在是原始數據了. 而是處理過之后的數據”.

          html實體編碼后的數據

          目前的策略是:

          在數據輸出到頁面時, 才進行html實體編碼轉換.

          都是使用HTML實體編碼轉換, 但是, 時機不同. 合理的策略是輸出時. 而不是輸入時.

          原因: script腳本, 只有在瀏覽器端運行, 才有執行意義. 存儲在數據庫中,沒有任何危害!

          數據庫中不知道用戶到底真正輸入的是什么!

          方案:

          關閉, 輸入時, 自動實體編碼處理

          將默認的過濾器關掉

          將過濾方法默認為空

          輸出時, 對可能發生的注入字段, 進行過濾:

          模板中完成:

          在需要的字段文章添加過濾

          效果:

          數據中, 存儲的是原始數據, 未轉換編碼的數據

          保存的是原始數據

          輸出時, 數據為實體編碼:

          詳細講解太長,再簡單說一下對于Html編輯器的XSS的處理 應該是另一個方式

          原因:

          其他字段, title字段, 輸出時, 直接轉換為實體標記即可.

          但是, 對于描述這種html編輯器的內容. 輸出時不能直接轉換. 因為 html代碼, 對于數據是有意義的.

          處理方案: 將內容中的script部分, 轉換成實體. 非script部分, 不去處理.

          實現:

          自定義一個過濾器函數

          使用正則替換實現,只對script標簽進行處理

          定義成一個方法,再需要選擇的時候選用該函數

          結果

          數據庫中的數據:

          輸出時:

          本文主要是介紹XSS防止時機,更多相關資料可以聯系

          前端其實只有三種技術:

          html,css,js

          后端有很多技術:

          java,php,python,Ruby(github 就是ruby做的),.net…….

          node.js(我們選擇的),

          凡是能用JS能實現的,最終都會用js實現

          其實他們都可以實現相同的功能

          node.js是什么?

          他不是什么:

          · 不是一個語言

          · 不是庫

          · 不是框架

          瀏覽器中的Javascript

          ecmascrpt:

          · 基本的語法

          · if

          · var

          · funciton

          · ….

          bom

          瀏覽器對象模型

          dom

          文檔對象模型

          node.js中的javascript

          沒有bom.dom :不處理頁面的

          在node.js這個運行環境中為javascript提供了一些服務器級別的api

          · 文件的讀寫

          網絡服務的構建

          網絡通信

          http服務等

          ….

          官網源說明

          · Node.js? is a JavaScript runtime(運行時) built on Chrome’s V8 JavaScript engine.(它可以解析執行Js,以前只有瀏覽器可以解析執行js,可以說是一個運行環境,構建于chrome的V8

          · Node.js uses an event-driven(事件驅動), non-blocking(非阻塞,簡單來講就是異步操作) I/O model that makes it lightweight and efficient.

          · Node.js’ package ecosystem, npm, is the largest ecosystem of open source libraries in the world. (源自官網)(npm是基于nodejs開發的包管理工具)

          絕大多數的javascript包都存放在了npm上,目的是讓開發人員更方便的使用

          node.js介紹

          能做什么?

          · web服務器后臺

          · 命令行工具

          npm(基于node開發的)

          git(c語言開發的)

          hexo

          ….

          對于前端開發工程師來講,我們接觸node 最多的其實是它的命令行工具

          自己寫的很少,大多是用第三方的

          webpack

          gulp

          npm

          hexo

          預備知識

          簡單的命令行操作

          cd

          dir

          is

          mkdir

          rm

          推薦的書籍

          《深入淺出node.js》:純理論,純底層,可以幫助理解底層(不推新手階段看)

          《node.js權威指南》:API講解,沒有實戰,沒有業務,偏理論

          《node入門》很重要,要看

          node.js官方API

          node.js中文社區:

          《JavaScript 高級編程》第三版

          《JavaScript 語言精粹》

          能學到啥?

          b/s編程模型:

          browser-server

          back-end

          任何服務端技術 B/S 編程模型都是一樣的.和語言無管。就只是語言和api不同

          模塊化編程:

          requireJs

          SeaJs

          以前認知的js只能通過script標簽加載,在node中可以像@import一樣引用加載JS腳本文件

          node.js常用的API

          異步編程

          回調函數

          promise

          async

          generator

          express web 開發框架

          ecmascript6

          一個新語法而已

          安裝node環境

          重新安裝就會覆蓋升級

          確定node是否安裝成功:

          cmd->node --version

          node 中的JavaScript

          1.emcaScript

          沒有dom 和 bom

          2.核心模塊

          node為JavaScript提供了很多服務器級別的API,這些API絕大多數都被包裝到一個具名的核心模塊中去了

          例如:文件操作的fs模塊,http服務構建的http模塊,path路徑操作模塊,os操作系統信息獲取……核心模塊想要使用需要引用。require就是用來加載模塊的

          require

          require 是一個方法,他的作用就是來加載模塊并執行里面代碼,在node中,模塊有三種

          具名的核心模塊,例如:fs,http

          用戶自己編寫的:就是自己寫的js文件,相對路徑必須加./,因為去了之后,node會把路徑當做核心模塊

          require('./b.js')//.js的后綴名可以省略

          在node中沒有全局作用域,只有模塊作用域

          不同文件之間不會互相影響,就算調用,外部訪問不到內部,內部也訪問不到外部

          3.第三方模塊(也可以是用戶自定義模塊)

          要想訪問到, 可以用以下方法:

          每個模塊(文件)都有一個exports對象,要想讓這個文件中的元素被外界訪問到,就需要把元素掛在到exports對象中。

          require有兩個作用:

          1.加載模塊文件并執行

          2.拿到exports這個接口對象

          IP和端口號

          ip:一臺計算機只有一個物理網卡,在同一個局域網中,IP地址必須是唯一的。網卡是通過IP地址來進行定位的。

          IP地址用來定位計算機。端口用來定位計算機中的軟件。

          可以同時開啟多個服務,但是一定要確定占用的端口號不一樣(計算機中,同一個端口號,同一時間,只能被一個程序占用)

          響應內容類型(Concent-Type)

          中文亂碼問題

          在服務器默認發送的數據,UTF8編碼的內容,但是瀏覽器不知道我們是UTF8編碼的內容,會按照計算機默認的操作系統去解析(中文操作系統時GBK編碼)

          解決方法:正確的告訴瀏覽器,我給你發送的內容是什么編碼的

          res.setHeader(‘Content-Type’,’text/plain;charset:utf-8’)

          要想讓瀏覽器按照一定方式去渲染代碼,concent-type應有不同的形式:

          text/html,text/plain

          后記:對于大部分轉行的人來說,找機會把自己的基礎知識補齊,邊工作邊補基礎知識,真心很重要。

          我們相信人人都可以成為一個IT大神,現在開始,選擇一條陽光大道,助你入門,學習的路上不再迷茫。這里是北京尚學堂,初學者轉行到IT行業的聚集地。"

          知乎上回答了一個網友的疑惑感覺蠻有意義,對于剛開始接觸的前端的人來說,還是需要用一些大白話方便他們去了解前端,降低學習的成本培養對于前端學習的熱情。


          知乎網友: 我不是讀計算機的學生,看W3School自學完了HTML、CSS、JS和JQuery,接下來有什么辦法鞏固下技術嗎?前端學這些對于建站是不是足夠了呢?我自己計劃還要學習PHP。求高手指導下,謝謝。

          針對這個問題的實際情況而言(純小白)

          • css 是主要處理樣式的,學完基礎的css 可以擴展性學習下預編譯語言 less sass 這些 主流的應付一般的小項目搓搓有余了
          • html 是頁面布局 初級階段 其實你只要掌握有哪些標簽,能寫出有語意話的頁面元素,稍稍進一步你可以找一些企業官網試一下看能不能寫出來,能把一個psd設計稿轉化成頁面就達到基本的小要求了。
          • javascript 是動態腳本語言,負責頁面交互,這部分對于初學而言難度是比較大的,僅針對純小白而言先學會js基礎語法,理解指針,原型,實操dom 0級事件 dom 2級事件,熟練掌握函數調用和參數調用,再稍微進一步可以學習下,如何導入導出模塊,進行復用。
          • php其實沒必要學了,個人看法。學php倒不如花點時間稍微了解下數據庫mysql 學會 增刪改查即可,最基本的語法懂就夠了。
          • 如果只是純興趣學習,這些是夠了,但是如果是為了工作的話 vue /react 必需會一個。
          • 至于建站的話,簡單的話花點小錢買個阿里云服務器懂得界面操作就好了 稍微體驗下即可。版本發布學習成本是比較大的不適合新手,在此不建議現階段掌握這些。

          主站蜘蛛池模板: 国产SUV精品一区二区四| 国产一区二区三区免费观看在线 | 国产一区二区三区91| 亚洲午夜一区二区三区| 中文字幕aⅴ人妻一区二区 | 国产成人精品a视频一区| 精品深夜AV无码一区二区老年| 无码日韩人妻AV一区二区三区| 一区二区亚洲精品精华液| 亚洲综合无码一区二区| 久久亚洲色一区二区三区| 精品一区二区91| 国产SUV精品一区二区88L| 最新中文字幕一区二区乱码| 国产乱人伦精品一区二区| 日韩毛片基地一区二区三区| 精品一区二区三区无码免费视频| 看电影来5566一区.二区| 一区二区三区无码视频免费福利| 91福利国产在线观看一区二区| 亚洲国产精品一区二区第一页免| 精品国产亚洲第一区二区三区| 国产午夜精品一区二区三区极品| 亚洲一区二区三区无码国产| 99久久精品日本一区二区免费| 69久久精品无码一区二区| 无码一区二区三区AV免费| 亚洲愉拍一区二区三区| 99国产精品欧美一区二区三区| 精品一区二区ww| 视频在线一区二区| 丝袜人妻一区二区三区网站| 中文字幕精品亚洲无线码一区 | 亚洲色精品aⅴ一区区三区| 日本不卡一区二区三区视频| 91精品福利一区二区三区野战| 中文字幕在线不卡一区二区| 无码人妻av一区二区三区蜜臀| 精品女同一区二区三区免费播放| 日韩电影在线观看第一区| 国精品无码一区二区三区在线蜜臀|