2012-09-20 63 views
0

我設計了一個網站,有很多的JavaScript塊:我可以阻止特定的Javascript塊運行嗎?

<script type='text/javascript'></script> 

用戶可以張貼到我的網頁和惡意用戶可以發佈一個腳本塊作爲後。我想要的是用戶帖子中的腳本塊被視爲文本而不是代碼

我知道我可以驗證輸入並過濾掉<script>塊,但爲了滿足我的好奇心,有沒有辦法在頁面加載後阻止特定的<script>標籤運行?

+0

相當類似的問題和答案在這裏:http://stackoverflow.com/questions/12488339/html-javascript-prevent-script-execution-from-child-nodes-of-a-dom-tree/12489245#12489245 – jfriend00

+1

不會在'<'和'>'的帖子中替換所有'<' and '>'做詭計嗎?或者,如果您希望他們能夠發佈其他html元素,只需在腳本標記上進行替換即可。這樣,他們鍵入的內容將按原樣顯示,而不是視爲腳本。 – nnnnnn

回答

2

在客戶端無法控制JS。即使您的邏輯阻止了某些代碼塊的執行,也沒有任何東西阻止用戶修改代碼並在Javascript控制檯中運行它。

作爲一般規則,在瀏覽器端發生的一切都在用戶的控制之下,不應該被信任;你應該重新考慮你的驗證。

+0

其實...... iam對於什麼用戶「可以改變它」至少感到困擾......對於我來說,如果它在第一次打開網站時對普通用戶來說工作正常,就足夠了......即腳本標籤if它的阻塞然後它工作正常的用戶,除非你改變它...我怎麼能控制這個阻塞? – funtime

+0

爲什麼不使用不運行代碼塊的標準if-then邏輯,例如,你控制的標誌變量是否設置爲false?或者我誤解了你的問題? – aednichols

+0

@aednicholas我沒有得到你......其實用戶可以做一個帖子,可能有一個腳本塊...我需要能夠只阻止該腳本塊運行 – funtime

相關問題