对于Yii2的XSS攻击防范策略的方法解析
这篇文章主要介绍了Yii2的XSS攻击防范策略,较为详细的分析了XSS攻击的原理及Yii2相应的防范策略,需要的朋友可以参考下
本文实例讲述了Yii2的XSS攻击防范策略。分享给大家供大家参考,具体如下:
XSS 漏洞修复
原则: 不相信客户输入的数据
注意: 攻击代码不一定在<script></script>中
① 将重要的cookie标记为http only, 这样的话Javascript 中的document.cookie语句就不能获取到cookie了.
② 只允许用户输入我们期望的数据。 例如: 年龄的textbox中,只允许用户输入数字。 而数字之外的字符都过滤掉。
③ 对数据进行Html Encode 处理
④ 过滤或移除特殊的Html标签, 例如: script, iframe , < for <, > for >, " for
⑤ 过滤JavaScript 事件的标签。例如 "onclick=", "onfocus" 等等。
Yii中的XSS防范
1 |
|
此方法的源码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
|
htmlspecialchars & htmlentities & urlencode 三者的区别:
http://php.net/manual/zh/function.htmlspecialchars.php
http://php.net/manual/zh/function.htmlentities.php
http://cn2.php.net/manual/zh/function.urlencode.php
Available flags constants
Constant Name Description
ENT_COMPAT Will convert double-quotes and leave single-quotes alone.
ENT_QUOTES Will convert both double and single quotes.
ENT_NOQUOTES Will leave both double and single quotes unconverted.
ENT_IGNORE Silently discard invalid code unit sequences instead of returning an empty string. Using this flag is discouraged as it » may have security implications.
ENT_SUBSTITUTE Replace invalid code unit sequences with a Unicode Replacement Character U+FFFD (UTF-8) or FFFD; (otherwise) instead of returning an empty string.
ENT_DISALLOWED Replace invalid code points for the given document type with a Unicode Replacement Character U+FFFD (UTF-8) or FFFD; (otherwise) instead of leaving them as is. This may be useful, for instance, to ensure the well-formedness of XML documents with embedded external content.
ENT_HTML401 Handle code as HTML 4.01.
ENT_XML1 Handle code as XML 1.
ENT_XHTML Handle code as XHTML.
ENT_HTML5 Handle code as HTML 5.
htmlspecialchars
Convert special characters to HTML entities
1 2 3 4 5 6 7 8 |
|
The translations performed are:
& (ampersand) becomes &
" (double quote) becomes " when ENT_NOQUOTES is not set.
' (single quote) becomes ' (or ') only when ENT_QUOTES is set.
< (less than) becomes <
> (greater than) becomes >
1 2 3 4 |
|
htmlentities
Convert all applicable characters to HTML entities
1 2 3 4 5 6 7 8 |
|
1 2 3 4 5 6 7 |
|
urlencode
URL 编码是为了符合url的规范。因为在标准的url规范中中文和很多的字符是不允许出现在url中的。
例如在baidu中搜索"测试汉字"。 URL会变成
http://www.baidu.com/s?wd=%B2%E2%CA%D4%BA%BA%D7%D6&rsv_bp=0&rsv_spt=3&inputT=7477
所谓URL编码就是: 把所有非字母数字字符都将被替换成百分号(%)后跟两位十六进制数,空格则编码为加号(+)
此字符串中除了 -_. 之外的所有非字母数字字符都将被替换成百分号(%)后跟两位十六进制数,空格则编码为加号(+)。此编码与 WWW 表单 POST 数据的编码方式是一样的,同时与 application/x-www-form-urlencoded 的媒体类型编码方式一样。由于历史原因,此编码在将空格编码为加号(+)方面与 RFC1738 编码(参见 rawurlencode())不同。
1 2 3 |
|
1 2 3 4 |
|
以上就是本文的全部内容,希望对大家的学习有所帮助,更多相关内容请关注PHP中文网!
相关推荐:
Atas ialah kandungan terperinci 对于Yii2的XSS攻击防范策略的方法解析. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Perlindungan penskripan silang tapak (XSS) dan pemalsuan permintaan merentas tapak (CSRF) dalam Laravel Dengan perkembangan Internet, isu keselamatan rangkaian menjadi semakin serius. Antaranya, Cross-SiteScripting (XSS) dan Cross-SiteRequestForgery (CSRF) adalah salah satu kaedah serangan yang paling biasa. Laravel, sebagai rangka kerja pembangunan PHP yang popular, menyediakan pengguna dengan pelbagai mekanisme keselamatan

Bagaimana untuk mengalih keluar jquery daripada yii2: 1. Edit fail AppAsset.php dan ulas nilai "yii\web\YiiAsset" dalam pembolehubah $depends 2. Edit fail main.php dan tambah konfigurasi sebagai "'yii" di bawah medan "komponen" \web\JqueryAsset' => ['js' => [],'sourcePath' => null,]," untuk mengalih keluar skrip jquery.

Dalam persekitaran Internet semasa, keselamatan sentiasa menjadi salah satu isu yang paling membimbangkan untuk pentadbir rangkaian dan pembangun laman web. Antaranya, serangan pengimbasan port adalah kelemahan keselamatan biasa Penyerang mengimbas port terbuka pada tapak web untuk mengenal pasti kelemahan yang berpotensi. Untuk mengelakkan ancaman keselamatan yang disebabkan oleh serangan pengimbasan port, semakin banyak syarikat dan tapak web memilih untuk menggunakan Nginx sebagai pelayan web mereka. Artikel ini akan memperkenalkan cara menggunakan Nginx untuk mencegah serangan pengimbasan port. 1. Apakah serangan pengimbasan port? Pengimbasan port merujuk kepada penyerang menggunakan TCP atau U

Cara menggunakan PHP untuk mempertahankan diri daripada serangan skrip merentas tapak (XSS) dan pelaksanaan kod jauh Pengenalan: Dalam dunia Internet hari ini, keselamatan telah menjadi isu penting. XSS (skrip merentas tapak) dan serangan pelaksanaan kod jauh adalah dua daripada kelemahan keselamatan yang paling biasa. Artikel ini akan meneroka cara menggunakan bahasa PHP untuk mempertahankan daripada kedua-dua serangan ini dan menyediakan beberapa kaedah dan teknik untuk melindungi tapak web anda daripada serangan ini. 1. Fahami serangan XSS Serangan XSS merujuk kepada penyerang yang mendapatkan maklumat peribadi pengguna dengan menyuntik skrip berniat jahat pada tapak web.

Perlindungan keselamatan PHP dan pencegahan serangan dalam pembangunan program mini Dengan perkembangan pesat Internet mudah alih, program mini telah menjadi bahagian penting dalam kehidupan orang ramai. Sebagai bahasa pembangunan back-end yang berkuasa dan fleksibel, PHP juga digunakan secara meluas dalam pembangunan program kecil. Walau bagaimanapun, isu keselamatan sentiasa menjadi aspek yang memerlukan perhatian dalam pembangunan program. Artikel ini akan menumpukan pada perlindungan keselamatan PHP dan pencegahan serangan dalam pembangunan program kecil, dan menyediakan beberapa contoh kod. XSS (serangan skrip merentas tapak) menghalang serangan XSS apabila penggodam menyuntik skrip berniat jahat ke dalam halaman web

PHP ialah bahasa pengaturcaraan yang digunakan secara meluas dalam pembangunan laman web, tetapi apabila menggunakan PHP untuk membangunkan tapak web, isu keselamatan sering menyebabkan orang ramai bimbang. Salah satunya ialah Cross-SiteScripting (XSS), yang merupakan kelemahan keselamatan rangkaian biasa. Untuk menyelesaikan masalah ini, PHP menyediakan beberapa teknologi penapisan XSS yang selamat. Artikel ini akan memperkenalkan prinsip dan penggunaan teknologi penapisan XSS selamat dalam PHP. Pertama, kita perlu memahami apa itu serangan XSS. Serangan XSS

Artikel ini akan memperkenalkan anda kepada rangka kerja yii2, berkongsi beberapa latihan CTF dan menggunakannya untuk mempelajari rangka kerja yii2 saya harap ia akan membantu semua orang.

Amalan Terbaik untuk Keselamatan Pembangunan PHP dan Vue.js: Mencegah Serangan XSS Dengan perkembangan pesat Internet, isu keselamatan rangkaian menjadi semakin penting. Antaranya, XSS (cross-site scripting attack) adalah jenis serangan rangkaian yang sangat biasa yang bertujuan untuk mengeksploitasi kelemahan keselamatan tapak web untuk menyuntik kod berniat jahat kepada pengguna atau mengganggu kandungan halaman web. Dalam pembangunan PHP dan Vue.js, adalah sangat penting untuk menggunakan beberapa amalan terbaik keselamatan untuk mencegah serangan XSS. Artikel ini akan memperkenalkan beberapa kaedah yang biasa digunakan untuk menghalang serangan XSS dan menyediakan kod yang sepadan.
