2013-06-12 27 views
1

這是奇怪的要求!如何添加<script>提醒('test');</script>裏面的文本框?

我想<script>alert('test');</script>在輸入類型的文本,但它不應該執行alert()

我只需要設置文本<script>alert('test');</script>
正在使用nwt框架 ...而且這是否可以在JS?

感謝,
馬里蘭州克瓦

+2

定義「文本框」。你的意思是一個''?你通常如何設定其中之一的價值?你有什麼問題想要設定的價值? – Quentin

+0

是的quentin!其輸入類型=「文本」。我通常會這樣做element.value =「」。所以bsically我有一個XSS問題,當用戶輸入。對於這是做逃生和做一個unescape設置輸入類型=「文本」,但似乎正在執行警報 – Waseem

+0

請張貼您的HTML/JS到這裏,很難明白什麼是您的問題 –

回答

-1

我想提醒( '測試');在輸入類型的文本中,但它不應該執行警報(警報提示)。

<input type="text" value="<script>alert('test');</script>" /> 

產地:

enter image description here

您可以在此做編程通過JavaScript。首先獲取對輸入元素的引用,然後設置value屬性。

var inputElement = document.querySelector("input"); 
inputElement.value = "<script>alert('test');<\/script>"; 
+0

searchfieldvalue =「

2

。我通常這樣做element.value="<script>alert('test');</script>"

如果像你這樣的聲音產生的內聯<script>元素,在這種情況下</script>將結束HTML元素,並導致腳本在字符串中間終止。

逃離/所以它不通過HTML解析器結束標記處理:

element.value = "<script>alert('test');<\/script>" 
+0

'searchfieldvalue =「」; \t \t \t searchtextfilter._node.value = searchfieldvalue.replace(/ <\/script> /,'<\/script>');' Quetine是否正確? – Waseem

+0

不需要你需要''<\\/script>''(假設你正在生成客戶端代碼,如答案中所述,如果你不是,並且所有JS都在運行服務器端,那麼這不是問題...並且您需要查看生成的HTML源代碼,然後詢問您需要什麼HTML(顯示您現在擁有的HTML,而不涉及服務器端JS)或如何生成所需的HTML(顯示HTML有,你想要的HTML和足夠的服務器端JS重現該問題) – Quentin

+0

我在客戶端這樣做,所以雖然設置輸入文本內我應該做這個'searchtextfilter._node.value = searchfieldvalue.replace(/ <\/script> /,'<\\/script>');'??請檢查這個正則表達式 – Waseem

-3

JQuery的版本:

$('yourInputSelectorHere').val("<script>alert('test');<\/script>") 
+3

來自'javascript'標籤的描述:*「除了如果框架或庫的標籤也存在,通常都需要純JavaScript的答案。」*。當然也有建議使用jQuery的情況,但這裏並不需要jQuery。 –

-1

是你要修復XSS輸入元素? 可以輸出之前編碼字符串輸入字段

PHP:

$str = htmlentities($str); 

C#:

str = WebUtility.HtmlEncode(str); 

該輸出值直接輸入後場:

<input type="text" value="<?php echo $str" /> 
+0

Thnx!但我需要這個JS。 – Waseem

-1

OK(確定)回答這個。我簡單地將我的<>轉換爲&lt;&gt;。以前發生的事情是我用來設置文本<script>alert('1')</script>,但在設置輸入文本瀏覽器中的文本轉換&lt;&gt;<>之前。因此,因此將它們再次轉換爲&lt;&gt;,因爲瀏覽器會明白只有標籤並將其轉換,而不是執行內部腳本<input type="text" />