如果我想從我的模型中設置一些JavaScript變量,那會是一種安全的做法嗎?例如:使用剃刀設置JavaScript變量內聯,它是良好的做法/安全嗎?
<script type="text/javascript">
var myVariable = '@Model.myVar';
</script>
這是一個好習慣嗎?我不能想到一個更好的方法來實現它,除了可能做隱藏的輸入,但這似乎是相當多的工作。我只是不知道這是否容易受到攻擊,或者是否有這樣的事情可以忽略。
如果我想從我的模型中設置一些JavaScript變量,那會是一種安全的做法嗎?例如:使用剃刀設置JavaScript變量內聯,它是良好的做法/安全嗎?
<script type="text/javascript">
var myVariable = '@Model.myVar';
</script>
這是一個好習慣嗎?我不能想到一個更好的方法來實現它,除了可能做隱藏的輸入,但這似乎是相當多的工作。我只是不知道這是否容易受到攻擊,或者是否有這樣的事情可以忽略。
我認爲這有幾個問題。基本上,你是緊密耦合你的JavaScript到你的頁面或視圖。我認爲自己是一個堅實的.NET/C#/ MVC開發人員,但是卻是一個初學javascript的人,這正是我追求的設計類型,直到最近。在過去,我會在我的觀點中插入各種javascript,並大量使用Razor。最後它可以工作,但它會導致標記和腳本的緊密耦合,並最終產生難以維護的環境。
一個更好的方法是改爲內聯調用JavaScript函數。差別很小,但它會強制這兩個領域的分離。
<script type="text/javascript">
MyFunction('@Model.myVar');
</script>
您還可以通過Razor隱藏輸入字段,跨度等內聯值,並將它們暴露給您的JavaScript。
它應該是安全的,因爲輸出在剃刀中默認編碼。
但是,如果您輸出的值是用戶可以更改的值,則必須確保已驗證它(服務器端)以停止任何XSS。
你很好。這樣做不會引入任何漏洞。如果已經存在漏洞,不會阻止漏洞,但這肯定不會再增加。
最好使用隱藏的輸入法,然後您可以將JavaScript從視圖中分離出來。 –