У меня есть элемент HTML на странице ASP .NET, который выглядит примерно так:
<input type="button" onclick="<%=GetOnClick(param1) %>" />
Функция GetOnClick выглядит следующим образом:
Function GetOnClick(param1 As String) As String
Dim onClick As String
onClick = "foo(" & JavaScriptEncode(param1) & ");"
Return HtmlAttributeEncode(onClick)
End Function
Я думаю, мне нужноJavaScriptEncode (в виде строки - этот метод добавляет одинарные кавычки) переменную param1, затем HtmlAttributeEncode целиком, так как я устанавливаю ее для атрибута onClick.Я уверен, что мог бы избежать использования всей этой кодировки в 90% случаев, но разве это лучшая практика?
Редактировать:
Брайан воспитал хорошийточка.Если вы можете контролировать строку param1, вам не нужно ее кодировать.Однако в данном случае это пользовательский ввод, поэтому мне нужно быть очень осторожным с ним.