Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537
TML編輯器粘貼word圖片,web編輯器粘貼word圖片,web富文本編輯器粘貼word,前端編輯器粘貼word內(nèi)容,前端web編輯器粘貼word,支持快捷鍵操作(Ctrl+V),
粘貼后word圖片自動上傳到服務(wù)器中,然后自動將圖片和文字HTML添加到編輯器中。
用戶這邊日常的編輯工作基本上都是在word中完成的,用戶把內(nèi)容編輯好后希望能夠直接一鍵(通過快捷鍵)粘貼到網(wǎng)站后臺新聞發(fā)布頁面的編輯器中,這樣能夠節(jié)省不少時(shí)間。提高工作效率,信息發(fā)布效率。
用戶發(fā)布新聞的時(shí)候是從word里面復(fù)制圖片和文字,然后將word圖文內(nèi)容粘貼到web富文本編輯器中,希望能夠?qū)ord的圖片自動上傳到服務(wù)器中,服務(wù)器地址能夠自定義,后端的話需要支持任意開發(fā)語言,比如ASP,ASP.NET,JSP,PHP,PYTHON等。只要是基于標(biāo)準(zhǔn)HTTP協(xié)議的都要支持。如果能夠不裝控件最好,
實(shí)際上裝不裝都無所謂,只要好用。
1.下載示例:
http://www.ncmem.com/webapp/wordpaster/versions.aspx
2.復(fù)制WordPaster插件目錄
3.引入插件文件
注意:不要重復(fù)引入jquery,如果您的項(xiàng)目已經(jīng)引入了jq,則不用再引入jq-1.4
4.在工具欄中增加插件按鈕
6.初始化控件
注意:
1.如果接口字段名稱不是file,請配置FileFieldName。ueditor接口中使用的upfile字段
參考:http://www.ncmem.com/doc/view.aspx?id=c3ad06c2ae31454cb418ceb2b8da7c45
2.如果接口返回JSON,請配置ImageMatch
參考:http://www.ncmem.com/doc/view.aspx?id=07e3f323d22d4571ad213441ab8530d1
3.如果接口返回的圖片地址沒有域名,請配置ImageUrl
參考:http://www.ncmem.com/doc/view.aspx?id=704cd302ebd346b486adf39cf4553936
4.如果接口有權(quán)限驗(yàn)證(登陸驗(yàn)證,SESSION驗(yàn)證),請配置COOKIE?;蛉∠麢?quán)限驗(yàn)證。
參考:http://www.ncmem.com/doc/view.aspx?id=8602DDBF62374D189725BF17367125F3
效果
讓我們看看如下這個web應(yīng)用示例:
<html> <meta http?equiv="Content?Security?Policy" content="script?src 'nonce?...' 'unsafe?eval'"> <div id="template_target"></div> <script type="application/template" id="template"> Hello World! 1 + 1 = {{ 1 + 1 }} </script> Your search is <?php echo $_GET['q']; ?> <script nonce="..."> let template = document.getElementById('template'); template_target.innerHTML = template.innerText.replace(/{{(.?)}}/g,eval) </script> </html>
以上這段簡單的HTML代碼可能反映了現(xiàn)在滲透測試人員經(jīng)常碰到的模板化Web應(yīng)用。某些模板內(nèi)容存儲在Web頁面中,然后再轉(zhuǎn)換為HTML代碼的一部分。上段代碼中含有id為template的HTML元素內(nèi)容先被讀取,然后再執(zhí)行{{}}括號內(nèi)的內(nèi)容,最后在某個單獨(dú)HTML元素中呈現(xiàn)出來。
Hello World! 1 + 1 = 2 Your search is ...........
其次,這段代碼應(yīng)用程序會在頁面上打印URL中的參數(shù)值。這顯而易見是一個XSS漏洞,但由于CSP(內(nèi)容安全策略)的存在,攻擊者并不能直接執(zhí)行javascript。雖然直接運(yùn)行javascript的路被堵死,但是我們可以找到其他繞過方法。
乍一看,貌似eval函數(shù)是一個可以利用的點(diǎn),我們或許可以直接插入某些特制代碼,讓eval函數(shù)去執(zhí)行。
為了實(shí)現(xiàn)這點(diǎn),我們必須插入HTML元素中id為template的代碼。但在我們插入語句的前面已有id為template的HTML元素,而document.getElementById('template')只會去獲取第一個HTML元素,并不是我們所輸入的語句。
此刻,我們需要換個角度,看看瀏覽器是否能出現(xiàn)“意外”,以前就出現(xiàn)過很多瀏覽器的異常解析所導(dǎo)致的XSS攻擊。我把所有能使用的tag都收集起來進(jìn)行測試,看看是否有驚喜。測試代碼如下:
<div id="template">First Tag</div> {% for tag in tag_list %} <{{tag}} id="template">{{tag}}</{{tag}}> {% endfor %} <script>console.log(document.getElementById('template'));</script>
當(dāng)程序運(yùn)行完畢時(shí),我得到一個奇怪的結(jié)果:當(dāng)輪到<html>時(shí),頁面結(jié)構(gòu)似乎發(fā)生了大變,此時(shí)已不再是<div>排在前面。讓我們看下當(dāng)插入<html id="template">時(shí)的變化:
此時(shí)<html>已排在文檔頂部(在我所測試的所有瀏覽器中都是如此!),現(xiàn)在getElementById('template')將獲取<html>中的惡意數(shù)據(jù),而不是<div>的內(nèi)容。
只需簡單的?q=<html id="template">{{ alert("xss") }}</html>就可進(jìn)行攻擊
最終,由于瀏覽器這個“莫名其妙”的特性,我們繞過了CSP成功進(jìn)行了XSS攻擊!
本文由白帽匯整理并翻譯,不代表白帽匯任何觀點(diǎn)和立場
來源:https://nosec.org/home/detail/2860.html
原文:https://pagedout.institute/download/PagedOut_001_beta1.pdf(該P(yáng)DF文檔的第62頁
白帽匯從事信息安全,專注于安全大數(shù)據(jù)、企業(yè)威脅情報(bào)。
公司產(chǎn)品:FOFA-網(wǎng)絡(luò)空間安全搜索引擎、FOEYE-網(wǎng)絡(luò)空間檢索系統(tǒng)、NOSEC-安全訊息平臺。
為您提供:網(wǎng)絡(luò)空間測繪、企業(yè)資產(chǎn)收集、企業(yè)威脅情報(bào)、應(yīng)急響應(yīng)服務(wù)。
PHP 動態(tài)頁面轉(zhuǎn)換為靜態(tài) HTML 頁面的主要意義在于提高網(wǎng)站的性能和可用性。下面是一些具體的好處:
然而,將 PHP 動態(tài)頁面轉(zhuǎn)換為靜態(tài) HTML 頁面并不適用于所有類型的網(wǎng)站,特別是對于需要動態(tài)生成內(nèi)容和實(shí)時(shí)更新的網(wǎng)站,如電子商務(wù)網(wǎng)站、新聞網(wǎng)站等,這種轉(zhuǎn)換可能會導(dǎo)致信息更新不及時(shí),從而影響網(wǎng)站的可用性和用戶體驗(yàn)。因此,需要根據(jù)實(shí)際需求和情況來選擇是否需要將 PHP 動態(tài)頁面轉(zhuǎn)換為靜態(tài) HTML 頁面。
要生成 HTML 文件,可以使用 PHP 中的文件處理函數(shù)和輸出函數(shù)來創(chuàng)建一個新的 HTML 文件并將其寫入磁盤。下面是一個簡單的示例:
<?php
// 創(chuàng)建一個新的 HTML 文件
$html = '<html><head><title>My HTML File</title></head><body><p>Hello, world!</p></body></html>';
$file = fopen('myhtmlfile.html', 'w');
// 將 HTML 內(nèi)容寫入文件
fwrite($file, $html);
// 關(guān)閉文件
fclose($file);
// 輸出成功信息
echo 'HTML 文件已經(jīng)生成!';
?>
在上面的示例中,首先創(chuàng)建了一個包含 HTML 代碼的字符串變量 $html。然后使用 fopen()函數(shù)創(chuàng)建一個新的文件,并將其設(shè)置為寫入模式 'w'。然后使用 fwrite() 函數(shù)將 HTML 內(nèi)容寫入文件。最后使用 fclose() 函數(shù)關(guān)閉文件。生成的文件名為 myhtmlfile.html,它將保存在與 PHP 腳本相同的目錄中。
請注意,上述示例是一個簡單的示例,用于說明如何生成 HTML 文件。在實(shí)際應(yīng)用中,您可能需要更復(fù)雜的 HTML 代碼,需要使用循環(huán)或條件語句生成動態(tài)內(nèi)容,并使用樣式表或 JavaScript 對 HTML 進(jìn)行美化和交互。
將 PHP 動態(tài)頁面進(jìn)行 HTML 緩存可以顯著提高網(wǎng)站性能,因?yàn)樗梢詼p少服務(wù)器請求和頁面加載時(shí)間。以下是一些用于將 PHP 動態(tài)頁面進(jìn)行 HTML 緩存的常見方法:
1.使用 PHP 自帶的輸出緩存機(jī)制 ob_start() 和 ob_get_contents() 函數(shù)。
<?php
// 啟動輸出緩存
ob_start();
// 輸出動態(tài)內(nèi)容
echo 'Hello, world!';
// 將輸出內(nèi)容保存到緩存文件
file_put_contents('cached_page.html', ob_get_contents());
// 清空輸出緩存并關(guān)閉
ob_end_clean();
?>
在上述示例中,使用 ob_start() 函數(shù)啟動 PHP 輸出緩存,然后使用 echo 輸出動態(tài)內(nèi)容。然后,使用 ob_get_contents() 函數(shù)將輸出內(nèi)容保存到緩存文件中,并使用 file_put_contents() 函數(shù)寫入緩存文件。最后,使用 ob_end_clean() 函數(shù)清空輸出緩存并關(guān)閉。
2.使用第三方緩存庫如 Memcached 或 Redis。
這些緩存庫可以在服務(wù)器內(nèi)存中存儲緩存頁面,并且能夠通過一個唯一的鍵名來訪問緩存頁面,從而加快頁面訪問速度。具體實(shí)現(xiàn)可以參考對應(yīng)的文檔或者庫的使用說明。
3.使用 HTTP 緩存頭信息。
這是一種在瀏覽器和服務(wù)器之間緩存頁面的機(jī)制,通過設(shè)置響應(yīng)頭信息來控制頁面緩存??梢酝ㄟ^設(shè)置 Expires、Cache-Control、Last-Modified 和 ETag 等響應(yīng)頭信息來控制頁面的緩存,從而減少對服務(wù)器的請求。具體實(shí)現(xiàn)可以參考 HTTP 協(xié)議規(guī)范或者使用對應(yīng)的 PHP 框架提供的緩存機(jī)制。
無論使用哪種方法,都需要謹(jǐn)慎考慮緩存時(shí)間和更新機(jī)制,以確保緩存頁面在需要時(shí)被及時(shí)更新,并避免緩存過期或出現(xiàn)臟數(shù)據(jù)等問題。
*請認(rèn)真填寫需求信息,我們會在24小時(shí)內(nèi)與您取得聯(lián)系。