භයානක විය හැකි ඉල්ලීමක්. සේවාදායකයාගෙන් ෆෝම් අගය අනාවරණය විය


1474

පරිශීලකයෙකු මගේ වෙබ් යෙදුමේ යම් පිටුවක් <හෝ >පිටුවක් පළ කරන සෑම අවස්ථාවකම මට මෙම ව්‍යතිරේකය විසි වේ.

කවුරුහරි පෙළ කොටුවක චරිතයක් ඇතුළත් කළ නිසා ව්‍යතිරේකයක් විසි කිරීම හෝ සම්පූර්ණ වෙබ් යෙදුමක්ම බිඳ දැමීම පිළිබඳ සාකච්ඡාවට යාමට මට අවශ්‍ය නැත, නමුත් මම මෙය හැසිරවීමට අලංකාර ක්‍රමයක් සොයමි.

ව්‍යතිරේකය හසුකර පෙන්වීම

දෝෂයක් සිදුවී ඇත කරුණාකර ආපසු ගොස් ඔබේ සම්පූර්ණ පෝරමය නැවත ටයිප් කරන්න, නමුත් මේ වතාවේ කරුණාකර <භාවිතා නොකරන්න

මට ප්‍රමාණවත් තරම් වෘත්තීය බවක් නොපෙනේ.

පශ්චාත් වලංගුකරණය ( validateRequest="false") අක්‍රීය කිරීමෙන් නියත වශයෙන්ම මෙම දෝෂය මඟ හැරෙනු ඇත, නමුත් එය පිටුවකට ප්‍රහාර ගණනාවකට ගොදුරු විය හැකිය.

ඉතා මැනවින්: HTML සීමිත අක්ෂර අඩංගු පෝස්ට් ආපසු ඇති විට, පෝරම එකතුවෙහි පළ කළ අගය ස්වයංක්‍රීයව HTML කේතනය කෙරේ. එබැවින් .Textමගේ පෙළ කොටුවේ දේපල වනු ඇතsomething & lt; html & gt;

හසුරුවන්නෙකුගෙන් මට මෙය කළ හැකි ක්‍රමයක් තිබේද?


69
ඔබේ ආදානයේ HTML ආයතන නාම (& amp;) හෝ වස්තු අංක (& # 39;) තිබේ නම් ඔබට මෙම දෝෂය ලබා ගත හැකි බව සලකන්න.
ඩ්‍රූ නොක්ස්

18
හොඳයි, එය මගේ ප්‍රශ්නය බැවින් මට ඇත්ත වශයෙන්ම කාරණය කුමක්දැයි නිර්වචනය කළ හැකි යැයි මට හැඟේ: සමස්ත යෙදුම් ක්‍රියාවලියක්ම බිඳ වැටීම සහ සාමාන්‍ය දෝෂ පණිවිඩයක් යැවීම නිසා කවුරුහරි '<' ටයිප් කිරීම අධික ලෙස මරණයට පත්වේ. විශේෂයෙන් ඔබ දන්නා පරිදි බොහෝ අය එයින් මිදීමට 'validateRequest = false' වනු ඇත, එමඟින් අවදානම නැවත විවෘත කරයි
Radu094

7
Rew ඩ්‍රූනෝක්ස්: ආයතන පරීක්ෂණ (.නෙට් 4.0 හි පරීක්ෂා කර ඇත) අනුව ආයතන නම් (& amp;) ගැටලුවක් ලෙස නොපෙනේ, නමුත් ආයතන අංක (& # 39;) වලංගු කිරීම අසමත් වුවද (ඔබ කී පරිදි). .Net Reflector භාවිතා කරමින් ඔබ System.Web.CrossSiteScriptingValidation.IsDanagerString ක්‍රමය විසුරුවා හරිනවා නම්, කේතය විශේෂයෙන් html ටැග් (<) සහ වස්තු අංක (& # වලින් ආරම්භ වන) සඳහා සොයන බව ඔබට පෙනෙනු ඇත
Gyum Fox

5
සුපුරුදු MVC ව්‍යාපෘතිය භාවිතා කරමින් VS2014 හි නව වෙබ් අඩවියක් සාදා එය ක්‍රියාත්මක කරන්න. රෙජිස්ටර් සබැඳිය ක්ලික් කරන්න, ඕනෑම විද්‍යුත් තැපෑලක් එක් කර "<P455-0r [!" මුරපදය ලෙස. පෙට්ටියෙන් පිටත එකම දෝෂයක්, අනිෂ්ට කිසිවක් කිරීමට උත්සාහ නොකිරීම, මුරපද ක්ෂේත්‍රය දර්ශනය නොවන බැවින් එය XSS ප්‍රහාරයක් නොවනු ඇත, නමුත් එය නිවැරදි කිරීමට ඇති එකම ක්‍රමය ValidateInput (අසත්‍ය) සමඟ වලංගු කිරීම සම්පූර්ණයෙන්ම ඉවත් කිරීමයි. ? AllowHtml යෝජනාව මෙම තත්වය තුළ ක්‍රියා නොකරයි, තවමත් එකම දෝෂයකින් පුපුරා ගියේය. භයානක විය හැකි ඉල්ලීමක්. සේවාදායකයා වෙතින් ෆෝම් අගය අනාවරණය විය (මුරපදය = "<P455-0r [!").
ස්ටෙෆන්බයර්

TL; DR <httpRuntime requestValidationMode="2.0" />web.config තුළට දමන්න

Answers:


1085

පළ කරන ලද සියලු දත්ත සංකේතනය කිරීමට උත්සාහ කිරීමෙන් ඔබ එය වැරදි කෝණයකින් පහර දෙන බව මම සිතමි.

<දත්ත සමුදා ක්ෂේත්‍රයක්, වින්‍යාසයක්, ගොනුවක්, සංග්‍රහයක් වැනි වෙනත් බාහිර ප්‍රභවයන්ගෙන් ද " " පැමිණිය හැකි බව සලකන්න .

තවද, " <" සහජයෙන්ම භයානක නොවේ. එය විශේෂිත සන්දර්භයක් තුළ පමණක් භයානක ය: HTML ප්‍රතිදානයට කේතනය කර නොමැති නූල් ලිවීමේදී (XSS නිසා).

වෙනත් සන්දර්භයන්හිදී විවිධ උප-නූල් භයානක ය, නිදසුනක් ලෙස, ඔබ පරිශීලක විසින් සපයන ලද URL එකක් සබැඳියකට ලියන්නේ නම්, උප නූල " javascript:" භයානක විය හැකිය. SQL විමසුම් වල නූල් අන්තර්ග්‍රහණය කිරීමේදී අනෙක් උපුටා දැක්වීමේ අක්‍ෂරය භයානක ය, නමුත් එය පෝරමයකින් ඉදිරිපත් කරන ලද හෝ දත්ත සමුදා ක්ෂේත්‍රයකින් කියවන ලද නමක කොටසක් නම් එය සම්පූර්ණයෙන්ම ආරක්ෂිත වේ.

නිගමනය මෙයයි: ඔබට භයානක අක්ෂර සඳහා අහඹු ආදානය පෙරහන් කළ නොහැක, මන්ද ඕනෑම චරිතයක් නියම තත්වයන් යටතේ භයානක විය හැකිය. සමහර විශේෂිත අක්ෂර භයානක විය හැකි ස්ථානයක ඔබ සංකේතවත් කළ යුත්තේ ඒවා විශේෂ අර්ථයක් ඇති වෙනත් උප භාෂාවකට ඇතුළු වන බැවිනි. ඔබ HTML වෙත නූලක් ලියන විට, ඔබ HTML හි විශේෂ අරුතක් ඇති අක්ෂර කේතනය කළ යුතුය, Server.HtmlEncode භාවිතා කරමින්. ඔබ ගතික SQL ප්‍රකාශයකට නූලක් යොමු කරන්නේ නම්, ඔබ විවිධ අක්ෂර සංකේතනය කළ යුතුය (හෝ වඩා හොඳ, සූදානම් කළ ප්‍රකාශ හෝ වෙනත් දේ භාවිතා කරමින් රාමුව ඔබට එය කිරීමට ඉඩ දෙන්න) ..

විට ඔබ වග බලා ගන්න ඔබට HTML-ආවරණ ඔබ HTML වලට නූල් සමත් වේ සෑම තැනකම, අනතුරුව ඔහු validateRequest="false"තුළ <%@ Page ... %>ඔබේ උපදෙස් .aspxගොනු (ව).

.NET 4 හි ඔබට තව ටිකක් කිරීමට අවශ්‍ය විය හැකිය. සමහර විට <httpRuntime requestValidationMode="2.0" />web.config ( යොමු ) වෙත එකතු කිරීම අවශ්‍ය වේ .


74
ප්‍රමාද වී පැමිණෙන අයට: validateRequest = "false" යන්න පිටු විධානයට ඇතුළත් වේ (ඔබේ .aspx ගොනුවේ පළමු පේළිය)
MGOwen

57
ඉඟිය: <httpRuntime requestValidationMode="2.0" />ඔබේ වෙබ් අඩවියේ සෙසු කොටස් වලින් වලංගු කිරීම මඟින් සපයනු ලබන ප්‍රයෝජනවත් ආරක්ෂාව වළක්වා ගැනීම සඳහා ස්ථාන ටැගයක් දමන්න .
බ්‍රයන්

300
MVC3 හි, මෙය [AllowHtml]ආදර්ශ දේපල මත වේ.
ජෙරමි හොලොවැක්ස්

2
MVC 3 සඳහා එය ගෝලීයව අක්‍රිය කිරීමට ඔබටද අවශ්‍ය GlobalFilters.Filters.Add(new ValidateInputAttribute(false));වේ Application_Start().
ඇලෙක්ස්

15
@MGOwen ඔබ හරහා ද web.config කිරීමට පිටුව උපදෙස් එක් කළ හැකිය <pages validateRequest="false" />දී <system.web />. එසේ කිරීමෙන් දේපල සියලු පිටුවලට අදාළ වේ.
ඔලිවර් ක්ලෙයාර්

506

ඔබ ASP.NET MVC භාවිතා කරන්නේ නම් මෙම දෝෂයට වෙනස් විසඳුමක් ඇත:

සී # නියැදිය:

[HttpPost, ValidateInput(false)]
public ActionResult Edit(FormCollection collection)
{
    // ...
}

දෘශ්‍ය මූලික නියැදිය:

<AcceptVerbs(HttpVerbs.Post), ValidateInput(False)> _
Function Edit(ByVal collection As FormCollection) As ActionResult
    ...
End Function

සම්පූර්ණ යෙදුමේ එක් පිටුවක අවශ්‍යතාවය ඇති විට ගැටළුව පැමිණිය හැකිය

3
ඔබට පන්ති මට්ටමින් [ValidateInput (false)] ගුණාංගය එකතු කළ හැකිය. ඔබ එය ඔබගේ මූලික පාලක පන්තියට එකතු කළහොත්, එය සියලු පාලක ක්‍රම ක්‍රියාවන්ට අදාළ වේ.
ෂාන් ප්ලෝර්ඩ්

Ack සැක් විසඳුමට ස්තූතියි. අනෙක් අතට , දේපළක් සඳහා එකවර අර්ථ දක්වා ඇති නිසා, එනම් සංස්කාරක ක්ෂේත්‍රයට [AllowHtml]වඩා හොඳ දැයි මම කල්පනා කරමි. එය භාවිතා කරන සෑම අවස්ථාවකම එය ක්‍රියාවන් කිහිපයක් සඳහා භාවිතා කිරීමේ අවශ්‍යතාවයක් නොමැත. ඔබ යෝජනා කරන්නේ කුමක්ද? ValidateInput(false)[AllowHtml]
ජැක්

Ack සැක් පීටර්සන් භාවිතා කිරීම ආරක්ෂිතද? ආරක්ෂක ප්‍රශ්නයක් නැද්ද?
ෂ්රේ පව්

419

ASP.NET MVC හි (3 වන අනුවාදයේ සිට), AllowHtmlඔබේ ආකෘතියේ ඇති දේපලකට ගුණාංගය එකතු කළ හැකිය .

දේපල සඳහා ඉල්ලීම් වලංගු කිරීම මඟ හැර ආදර්ශ බන්ධනය අතරතුර HTML සලකුණු ඇතුළත් කිරීමට එය ඉල්ලීමට ඉඩ දෙයි.

[AllowHtml]
public string Description { get; set; }

13
පාලකයට වඩා මෙය ප්‍රකාශිතව කිරීමට වඩා හොඳය!
ඇන්ඩී

30
එකම නිවැරදි පිළිතුර! පාලක ක්‍රියාවෙහි වලංගු කිරීම අක්‍රීය කිරීම හැක. යෙදුම් මට්ටමින් වලංගු කිරීම අක්‍රීය කිරීම සඳහා, devs එල්ලා තැබිය යුතුය!
ට්‍රේල්මැක්ස්

MVC 4 හි මෙය අතුරුදහන් වී තිබේද?
granadaCoder

1
ValidateInput(false)සහ අතර ඇති වෙනස AllowHtmlකුමක්ද? එකිනෙකාට වඩා එකකට ඇති වාසිය කුමක්ද? AllowHtmlඒ වෙනුවට මට භාවිතා කිරීමට අවශ්‍ය වන්නේ ValidateInput(false)කවදාද? මට ValidateInput(false)වැඩිපුර භාවිතා කිරීමට අවශ්‍ය වන්නේ AllowHtmlකවදාද? මට දෙකම භාවිතා කිරීමට අවශ්‍ය වන්නේ කවදාද? දෙකම භාවිතා කිරීම අර්ථවත්ද?
ඉයන් බොයිඩ්

3
ValidateInput ක්‍රමවේදය මත ඇත, AllowHtml මාදිලියේ දේපල මත ඇත - එබැවින් ඔබ html ලබා ගැනීමට බලාපොරොත්තු වන තැනැත්තාට පමණක් ඉඩ දෙයි - සියල්ලම නොවේ
ඇන්තනි ජොන්ස්ටන්

213

ඔබ .NET 4.0 හි සිටී නම්, මෙය ඔබගේ web.config ගොනුවේ <system.web>ටැග් තුළ එක් කිරීමට වග බලා ගන්න :

<httpRuntime requestValidationMode="2.0" />

.NET 2.0 හි, ඉල්ලීම් වලංගු කිරීම aspxඉල්ලීම් සඳහා පමණක් අදාළ වේ . .NET 4.0 හි සියලුම ඉල්ලීම් ඇතුළත් කිරීම සඳහා මෙය පුළුල් කරන ලදි . සැකසීමේදී ඔබට XSS වලංගු කිරීම පමණක් කළ හැකිය .aspx.

requestValidationMode="2.0"

ඉල්ලීම වලංගු කිරීම සම්පූර්ණයෙන්ම සඳහන් කිරීමෙන් ඔබට අක්‍රිය කළ හැකිය :

validateRequest="false"

30
<system.web>ටැග් ඇතුළත .
හොසම් අලි

8
මම මෙය web.config තුළ තබා ඇත, නමුත් තවමත් "භයානක විය හැකි ඉල්ලීමක්. ෆෝම් අගය" යන දෝෂයට
පිලිප්

20
<HttpRuntime requestValidationMode = "2.0" /> ක්‍රියාත්මක වන්නේ යන්ත්‍රයේ 2.0 රාමුව ස්ථාපනය කළ විට පමණි. 2.0 රාමුව කිසිසේත් ස්ථාපනය කර නොමැති නමුත් 4.0 රාමුවක් පමණක් ස්ථාපනය කර ඇත්නම් කුමක් කළ යුතුද?
සැමුවෙල්

මෙය මුළුමනින්ම මට වැඩ කළා. අනෙක් පිළිතුරු වල පියවර ලේඛනයක් අවශ්‍ය නොවීය (validateRequest = "false" ඇතුළුව)!
tom redfern

113

ASP.NET 4.0 සඳහා, සම්පූර්ණ වෙබ් අඩවිය වෙනුවට විශේෂිත පිටු සඳහා සලකුණු කිරීමට ඔබට ඉඩ දිය හැකිය <location>. මෙය ඔබගේ අනෙක් පිටු සියල්ලම ආරක්ෂිත බව සහතික කරයි. ValidateRequest="false"ඔබේ .aspx පිටුවට ඇතුළත් කිරීමට ඔබට අවශ්‍ය නැත .

<configuration>
...
  <location path="MyFolder/.aspx">
    <system.web>
      <pages validateRequest="false" />
      <httpRuntime requestValidationMode="2.0" />
    </system.web>
  </location>
...
</configuration>

ඔබේ වෙබ් කොන්ෆිග් තුළ මෙය පාලනය කිරීම වඩා ආරක්ෂිත වේ, මන්ද ඔබට ආදාන ලෙස සලකුණු කිරීමට ඉඩ දෙන පිටු මට්ටමින් ඔබට දැක ගත හැකිය.

ඉල්ලීම් වලංගු කිරීම අක්‍රීය කර ඇති පිටුවල ආදානය ක්‍රමලේඛනය කිරීමෙන් ඔබට තවමත් අවශ්‍ය වේ.


RequestValidationMode = 2 | 4 පිළිබඳ වැඩි විස්තර මෙහි: msdn.microsoft.com/en-us/library/…
ග්ලෙන්ජී

කනගාටුවට කරුණක් නම් මෙය ASP.net 2.0 සමඟ ක්‍රියා නොකරනු ඇත. HttpRuntime රේඛාව ඉවත් කරන්න, එය ක්‍රියාත්මක වනු ඇත.
ෆැන්ඩැන්ගෝ 68

වලංගු කිරීම අක්‍රිය වූ විට ආදානය අතින් වලංගු කරන ලෙස මම මිනිසුන්ට මතක් කර දෙන අනතුරු ඇඟවීමක් එක් කළෙමි.
කාටර් මෙඩ්ලින්

72

පෙර පිළිතුරු විශිෂ්ටයි, නමුත් HTML / JavaScript එන්නත් සඳහා වලංගු වීමෙන් එක් ක්ෂේත්‍රයක් බැහැර කරන්නේ කෙසේදැයි කිසිවෙකු කීවේ නැත. පෙර සංස්කරණ ගැන මම නොදනිමි, නමුත් MVC3 බීටා හි ඔබට මෙය කළ හැකිය:

[HttpPost, ValidateInput(true, Exclude = "YourFieldName")]
public virtual ActionResult Edit(int id, FormCollection collection)
{
    ...
}

බැහැර කළ එක හැර අනෙක් සියලුම ක්ෂේත්‍ර මෙය වලංගු වේ. මෙහි ඇති හොඳ දෙය නම්, ඔබේ වලංගු කිරීමේ ගුණාංග තවමත් ක්ෂේත්‍රය වලංගු කිරීමයි, නමුත් ඔබට “භයානක විය හැකි ඉල්ලීමක් නොලැබේ. සේවාදායකයාගෙන් ෆෝම් අගය අනාවරණය විය” ව්‍යතිරේක.

සාමාන්‍ය ප්‍රකාශනයක් වලංගු කිරීම සඳහා මම මෙය භාවිතා කර ඇත්තෙමි. නිත්‍ය ප්‍රකාශනය වලංගු ද නැද්ද යන්න බැලීමට මම මගේම වලංගුකරණ දායකත්වයක් ලබා දී ඇත. සාමාන්‍ය ප්‍රකාශනවල මා ඉහත කේතය යෙදූ පිටපතක් මෙන් පෙනෙන දෙයක් අඩංගු විය හැකි බැවින් - සාමාන්‍ය ප්‍රකාශනය වලංගු ද නැද්ද යන්න තවමත් පරීක්ෂා කරමින් පවතී, නමුත් එහි ස්ක්‍රිප්ට් හෝ HTML අඩංගු නොවේ ද යන්න නොවේ.


10
කනගාටුවට කරුණක් නම්, බැහැර කිරීමේ අංගය MVC 3 RTW වෙතින් ඉවත් කර ඇති බව පෙනේ :(
මැට් ග්‍රීර්


9
එකම අවසාන ප්‍රති .ලය ලබා ගැනීම සඳහා ක්‍රියාව [AllowHtml]වෙනුවට ආකෘතියේ ගුණාංග භාවිතා කරන්න [ValidateInput].
මචීෆ්

2
H ක්‍රිස්ටෝෆ් මගේ පිළිතුර අවුරුදු 5 ක් පැරණි බව සලකන්න. මම මෙම ගැටලුව ඉතා දීර් time කාලයක් තුළ හමු වී නැත, එබැවින් එය සමඟ කටයුතු කිරීමට වඩා හොඳ ක්‍රම රාශියක් තිබිය හැකිය. මෙම විකල්ප දෙක සම්බන්ධයෙන් මම සිතන්නේ එය ඔබගේ තත්වය මත රඳා පවතී. සමහර විට ඔබ එම ආකෘතිය එක් ක්‍රියාවකට වඩා නිරාවරණය කර ඇති අතර සමහර ස්ථානවල HTML වලට අවසර හෝ නැත. එවැනි අවස්ථාවක [AllowHtml]විකල්පයක් නොවේ. මෙම ලිපිය පරීක්ෂා කර බැලීමට මම නිර්දේශ කරමි: weblogs.asp.net/imranbaloch/… , නමුත් එය ද තරමක් පැරණි වන අතර එය යල් පැන ගිය එකක් විය හැකිය.
gligoran

1
නිශ්චිත ක්‍රම පරාමිතීන් වලංගු භාවයෙන්
ඇලෙක්ස්

51

ASP.NET MVC හි ඔබට web.config හි requestValidationMode = "2.0" සහ validateRequest = "false" සැකසිය යුතු අතර ඔබේ පාලක ක්‍රියාව සඳහා ValidateInput ගුණාංගයක් යොදන්න:

<httpRuntime requestValidationMode="2.0"/>

<configuration>
    <system.web>
        <pages validateRequest="false" />
    </system.web>
</configuration>

සහ

[Post, ValidateInput(false)]
public ActionResult Edit(string message) {
    ...
}

2
මට නම්, validateRequest="false"එකම, අවශ්ය නොවනrequestValidationMode="2.0"
රෙඩ්ෆර්න් ටොම්

requestValidationMode = "2.0" තවමත් HTMLencoded දත්ත සමඟ දෝෂය ජනනය කරයි. Base64 සියල්ල කේතනය කිරීම හැර වෙනත් විසඳුමක් නොමැත, ඉන්පසු එය යවන්න.
MC9000

48

ඔබට HTML පෙළ කොටු අන්තර්ගතය කේතනය කළ හැකිය , නමුත් අවාසනාවකට එය ව්‍යතිරේකය සිදුවීම වළක්වන්නේ නැත. මගේ අත්දැකීම් අනුව කිසිදු මාර්ගයක් නොමැති අතර, ඔබ පිටු වලංගු කිරීම අක්‍රිය කළ යුතුය. එසේ කිරීමෙන් ඔබ කියන්නේ: "මම පරිස්සම් වන්න, මම පොරොන්දු වෙමි."


43

MVC සඳහා, එකතු කිරීමෙන් ආදාන වලංගු කිරීම නොසලකා හරින්න

[ValidateInput (අසත්‍ය)]

පාලකයේ එක් එක් ක්‍රියාවට ඉහළින්.


වින්‍යාසගත මාර්ගයක් හරහා පාලක ක්‍රමයට පිවිසෙන විට මෙය ක්‍රියාත්මක වන බවක් නොපෙනේ.
පැන්ඩාවුඩ්

ඇත්තෙන්ම, තාක්ෂණික පැහැදිලි කිරීමක්, රජයක්වීමෙන් ස්වභාවය, "විමසුම string" සිදු වන විට, ... එය ඉල්ලීම මාර්ගය තියෙන්නේ නම්, වලංගු විශේෂණය මෙම පමණක් ක්රියා බව ය නැති වැඩ
PandaWood

42

Global.asax හි ඔබට එම දෝෂය හසු කර ගත හැකිය. මට තවමත් වලංගු කිරීමට අවශ්‍යයි, නමුත් සුදුසු පණිවිඩයක් පෙන්වන්න. පහත ලැයිස්තුගත කර ඇති බ්ලොග් අඩවියේ මෙවැනි සාම්පලයක් ලබා ගත හැකි විය.

    void Application_Error(object sender, EventArgs e)
    {
        Exception ex = Server.GetLastError();

        if (ex is HttpRequestValidationException)
        {
            Response.Clear();
            Response.StatusCode = 200;
            Response.Write(@"[html]");
            Response.End();
        }
    }

වෙනත් පිටුවකට හරවා යැවීම ද ව්‍යතිරේකයට සාධාරණ ප්‍රතිචාරයක් සේ පෙනේ.

http://www.romsteady.net/blog/2007/06/how-to-catch-httprequestvalidationexcep.html


41

මෙම ප්රශ්නයට පිළිතුර සරල ය:

var varname = Request.Unvalidated["parameter_name"];

මෙය විශේෂිත ඉල්ලීම සඳහා වලංගු කිරීම අක්‍රීය කරනු ඇත.


1
ASP.NET 4.5 සඳහා පමණක් අදාළ වේ (සහ, අනුමාන වශයෙන්, ඊට පසුව එන ඕනෑම දෙයක්.) පෙර 4.5 මේ සඳහා සහාය නොදක්වයි.
බෙස්කා

3
මම ප්‍රාර්ථනා කරනවා මට මේ පැත්තට යන්න පුළුවන් කියලා. මම .NET 4.5 භාවිතා කරන අතර මම MVC භාවිතා නොකරන බැවින් මට අවශ්‍ය වන්නේ මෙයයි.
ක්‍රිස් ගිලුම්

1
ඔව්, නමුත් ඔබ .Net 2 භාවිතා කරන්නේ නම් කුමක් කළ යුතුද? අපෙන් සමහරෙකුට විකල්පයක් නැත
Fandango68

මෙය POST හෝ GET පරාමිතීන් ලබා ගන්නේද?
max4ever

ඔබ කියන්නේ මෙය දැනටමත් විසි කර ඇති ව්‍යතිරේකයක් වළක්වන බවයි? හෝ .net 4.5 දත්ත සත්‍ය වශයෙන්ම කියවන තෙක් ව්‍යතිරේකය සහ වලංගු කිරීම ප්‍රමාද Requestකරයිද?
ebyrob

35

සමහර .NET පාලනයන් ස්වයංක්‍රීයව HTML ප්‍රතිදානය සංකේතවත් කරන බව කරුණාවෙන් මතක තබා ගන්න. උදාහරණයක් ලෙස, ටෙක්ස්ට් බොක්ස් පාලනයක් මත .Text දේපල සැකසීම ස්වයංක්‍රීයව එය කේතනය කරයි. විශේෂයෙන් අදහස් පරිවර්තනය බව <බවට &lt;, >බවට &gt;සහ &බවට &amp;. එබැවින් මෙය කිරීමට ප්‍රවේශම් වන්න ...

myTextBox.Text = Server.HtmlEncode(myStringFromDatabase); // Pseudo code

කෙසේ වෙතත්, හයිපර්ලින්ක්, ලිටරල් සහ ලේබලය සඳහා වන පෙළ දේපල HTML මඟින් දේවල් සංකේතවත් නොකරනු ඇත, එබැවින් සර්වර් එතීම. HTML එන්කෝඩ් (); <script> window.location = "http://www.google.com"; </script>ඔබේ පිටුවට ප්‍රතිදානය වීම වැළැක්වීමට සහ පසුව ක්‍රියාත්මක කිරීමට අවශ්‍ය නම් මෙම ගුණාංග මත ඕනෑම දෙයක් සැකසීම අත්‍යවශ්‍ය වේ .

කේතනය කර ඇති දේ සහ නොකළ යුතු දේ බැලීමට කුඩා අත්හදා බැලීමක් කරන්න.


29

Web.config ගොනුවේ, ටැග් තුළ, httpRuntime මූලද්‍රව්‍යය requestValidationMode = "2.0" යන ගුණාංගය සමඟ ඇතුළත් කරන්න. පිටු මූලද්‍රව්‍යයේ validateRequest = "false" ගුණාංගයද එක් කරන්න.

උදාහරණයක්:

<configuration>
  <system.web>
   <httpRuntime requestValidationMode="2.0" />
  </system.web>
  <pages validateRequest="false">
  </pages>
</configuration>

1
මට නම්, validateRequest = "false" අවශ්‍ය නොවීය, requestValidationMode = "2.0" පමණි
tom redfern

3
"පිටු" කොටස "system.web" කොටස තුළ තිබිය යුතුය.
කාටර් මෙඩ්ලින්

භයානක පිළිතුර, නැවත වරක්.
MC9000

මට දෙකම අවශ්‍ය විය. ස්තූතියි
ජැක්

24

ValidateRequest අක්‍රීය කිරීමට ඔබට අවශ්‍ය නැතිනම්, ව්‍යතිරේකය වළක්වා ගැනීම සඳහා ඔබට JavaScript ශ්‍රිතයක් ක්‍රියාත්මක කළ යුතුය. එය හොඳම විකල්පය නොවේ, නමුත් එය ක්රියා කරයි.

function AlphanumericValidation(evt)
{
    var charCode = (evt.charCode) ? evt.charCode : ((evt.keyCode) ? evt.keyCode :
        ((evt.which) ? evt.which : 0));

    // User type Enter key
    if (charCode == 13)
    {
        // Do something, set controls focus or do anything
        return false;
    }

    // User can not type non alphanumeric characters
    if ( (charCode <  48)                     ||
         (charCode > 122)                     ||
         ((charCode > 57) && (charCode < 65)) ||
         ((charCode > 90) && (charCode < 97))
       )
    {
        // Show a message or do something
        return false;
    }
}

පිටු කේතය පිටුපස, පේජ්ලොඩ් සිද්ධියේදී, ඊළඟ කේතය සමඟ ඔබේ පාලනයට ගුණාංගය එක් කරන්න:

Me.TextBox1.Attributes.Add("OnKeyPress", "return AlphanumericValidation(event);")

4
මෙය තවමත් සාදන ලද POST ඉල්ලීම් වලින් යෙදුම අවදානමට ලක් කරයි. සාමාන්‍ය පරිශීලකයෙකුට, හෝ උපුටා දැක්වීම් වැනි අක්ෂර ඇතුළත් කිරීමේදී ගැටළු ඇති නමුත් සාමාන්‍ය හැකර්වරයකුට කිසිදු ගැටළුවක් ඇති නොවනු ඇත. මම මේ වේගය අඩු කරන්නම්.
Radu094

13
U Radu094: මෙම විසඳුම මඟින් ValidateRequest = true ලෙස තබා ගැනීමට ඔබට ඉඩ සලසයි, එයින් අදහස් කරන්නේ හැකර්වරු තවමත් එම බිත්තියට පහර දෙනු ඇති බවයි. ValidateRequest අක්‍රිය කිරීමට වඩා මෙය ඔබව අවදානමට ලක් කරන බැවින් UP ට ඡන්දය දෙන්න.
jbehren

21

කිසිවෙකු තවමත් පහත සඳහන් කර නැති බව පෙනේ, නමුත් එය මට ගැටලුව විසඳයි. කවුරුහරි කියන්න කලින් ඔව් ඒක විෂුවල් බේසික් ... යක්.

<%@ Page Language="vb" AutoEventWireup="false" CodeBehind="Example.aspx.vb" Inherits="Example.Example" **ValidateRequest="false"** %>

එහි අවාසි ඇත්දැයි මම නොදනිමි, නමුත් මට මෙය පුදුම සහගතය.


වෙබ් ආකෘති සඳහා ක්‍රියා කරයි c # හෝ VB
TheAlbear

19

තවත් විසඳුමක් නම්:

protected void Application_Start()
{
    ...
    RequestValidator.Current = new MyRequestValidator();
}

public class MyRequestValidator: RequestValidator
{
    protected override bool IsValidRequestString(HttpContext context, string value, RequestValidationSource requestValidationSource, string collectionKey, out int validationFailureIndex)
    {
        bool result = base.IsValidRequestString(context, value, requestValidationSource, collectionKey, out validationFailureIndex);

        if (!result)
        {
            // Write your validation here
            if (requestValidationSource == RequestValidationSource.Form ||
                requestValidationSource == RequestValidationSource.QueryString)

                return true; // Suppress error message
        }
        return result;
    }
}

හොඳයි! ඉල්ලීම් වලංගුකරණය ප්‍රතිස්ථාපනය කිරීමේ හැකියාව ගැන දැන සිටියේ නැත. ඔබ වැනි "හරි" යැයි පැවසීම වෙනුවට "_NoValidation" වලින් අවසන් වන ක්ෂේත්‍ර ඒවායේ නම ලෙස වලංගු නොකිරීමට මම මෙම අදහස දිගු කළෙමි. පහත කේතය.
වොල්ඩන් ලෙවරිච්

වොල්ඩන් ලෙවරිච්, මෙය සිදු කිරීම සඳහා [AllowHtml] ගුණාංගය බලන්න
සෙල්

සෙල්, ඔව් වැඩ කරන MVC පරිසරයක. නමුත් වෙබ් ආකෘති යෙදුමක මට එය කිරීමට ආකෘතියක් නොමැත. :-)
වොල්ඩන් ලෙවරිච්

15

ඔබ 4.0 රාමුව භාවිතා කරන්නේ නම්, web.config හි ඇතුළත් කිරීම (<පිටු validateRequest = "false" />)

<configuration>
    <system.web>
        <pages validateRequest="false" />
    </system.web>
</configuration>

ඔබ 4.5 රාමුව භාවිතා කරන්නේ නම්, web.config හි ඇතුළත් කිරීම (requestValidationMode = "2.0")

<system.web>
    <compilation debug="true" targetFramework="4.5" />
    <httpRuntime targetFramework="4.5" requestValidationMode="2.0"/>
</system.web>

ඔබට අවශ්‍ය වන්නේ තනි පිටුවක් සඳහා නම්, ඔබ aspx ගොනුවේ පළමු පේළිය මේ ආකාරයට තැබිය යුතුය:

<%@ Page EnableEventValidation="false" %>

ඔබට දැනටමත් <% @ පිටුව වැනි දෙයක් තිබේ නම් ඉතිරිය එකතු කරන්න => EnableEventValidation="false" %>

එය නොකිරීමට මම නිර්දේශ කරමි.


13

ASP.NET හි, ඔබට ව්‍යතිරේකය හසු කර ගත හැකි අතර මිත්‍රශීලී පණිවිඩයක් ප්‍රදර්ශනය කිරීම හෝ වෙනත් පිටුවකට හරවා යැවීම වැනි යමක් කළ හැකිය ... එසේම වලංගු භාවය ඔබට තනිවම හැසිරවීමේ හැකියාවක් ඇත ...

මිත්‍රශීලී පණිවිඩය ප්‍රදර්ශනය කරන්න:

protected override void OnError(EventArgs e)
{
    base.OnError(e);
    var ex = Server.GetLastError().GetBaseException();
    if (ex is System.Web.HttpRequestValidationException)
    {
        Response.Clear();
        Response.Write("Invalid characters."); //  Response.Write(HttpUtility.HtmlEncode(ex.Message));
        Response.StatusCode = 200;
        Response.End();
    }
}

13

මම හිතන්නේ ඔබට එය මොඩියුලයකින් කළ හැකිය; නමුත් එමඟින් ප්‍රශ්න කිහිපයක් විවෘත වේ. ආදානය දත්ත සමුදායකට සුරැකීමට ඔබට අවශ්‍ය නම් කුමක් කළ යුතුද? හදිසියේම ඔබ දත්ත සමුදායට කේතනය කළ දත්ත සුරකින නිසා ඔබ එයින් ලැබෙන ආදානය විශ්වාස කිරීම අවසන් කරයි. ඉතා මැනවින් ඔබ අමු එන්කෝඩ් නොකළ දත්ත සෑම විටම දත්ත සමුදායේ සහ කේතයේ ගබඩා කරයි.

එක් පිටුවකට ආරක්ෂාව අක්‍රීය කිරීම සහ එක් එක් අවස්ථාව කේතනය කිරීම වඩා හොඳ විකල්පයකි.

Server.HtmlEncode භාවිතා කරනවා වෙනුවට ඔබ මයික්‍රොසොෆ්ට් ඒඑස්ඊ කණ්ඩායමේ නවතම, වඩාත් සම්පූර්ණ ප්‍රති-එක්ස්එස්එස් පුස්තකාලය දෙස බැලිය යුතුය .


12

හේතුව

ASP.NET පෙරනිමියෙන් හරස් අඩවි ස්ක්‍රිප්ටින් (XSS) සහ SQL එන්නත් වලට තුඩු දිය හැකි අනාරක්ෂිත අන්තර්ගතයන් සඳහා සියලු ආදාන පාලනයන් වලංගු කරයි . මේ අනුව ඉහත ව්‍යතිරේකය විසි කිරීමෙන් එවැනි අන්තර්ගතයන් තහනම් කරයි. පෙරනිමියෙන් එක් එක් පසුබැසීම් වලදී මෙම චෙක්පත සිදුවීමට ඉඩ දීම රෙකමදාරු කරනු ලැබේ.

විසඳුමක්

බොහෝ අවස්ථාවන්හිදී පොහොසත් පෙළ බොක්ස් හෝ පොහොසත් පෙළ සංස්කාරක හරහා HTML අන්තර්ගතය ඔබේ පිටුවට ඉදිරිපත් කළ යුතුය. එවැනි අවස්ථාවකදී ඔබට මෙම ව්‍යතිරේකය වළක්වා ගත හැක්කේ විධානයෙහි ValidateRequest ටැගය @Pageවැරදි ලෙස සැකසීමෙනි .

<%@ Page Language="C#" AutoEventWireup="true" ValidateRequest = "false" %>

මෙය ඔබ ValidateRequest ධජය අසත්‍ය ලෙස සකසා ඇති පිටුව සඳහා වන ඉල්ලීම් වලංගු කිරීම අක්‍රීය කරනු ඇත. ඔබට මෙය අක්‍රිය කිරීමට අවශ්‍ය නම්, ඔබේ වෙබ් යෙදුම පුරාම පරීක්ෂා කරන්න; ඔබගේ web.config <system.web> කොටසේ එය වැරදි ලෙස සැකසීමට ඔබට අවශ්‍ය වේ

<pages validateRequest ="false" />

.NET 4.0 හෝ ඊට වැඩි රාමු සඳහා ඉහත වැඩ කිරීම සඳහා ඔබට <system.web> කොටසේ පහත පේළිය එක් කිරීමට අවශ්‍ය වේ.

<httpRuntime requestValidationMode = "2.0" />

ඒක තමයි. ඉහත ගැටලුවෙන් මිදීමට මෙය ඔබට උපකාරී වනු ඇතැයි මම බලාපොරොත්තු වෙමි.

යොමු කිරීම: ASP.Net දෝෂය: භයානක විය හැකි ඉල්ලීමක්. සේවාදායකයා වෙතින් වටිනාකමක් අනාවරණය විය


11

.NET හි විකේතනය කර ඇති දත්ත සංකේතනය කිරීම සඳහා ජාවාස්ක්‍රිප්ට් භාවිතා කරන විසඳුමක් මට හමු විය (සහ jQuery අවශ්‍ය නොවේ).

  • පෙළ කොටුව ඒඑස්පී එකක් වෙනුවට HTML අංගයක් (ටෙක්ස්ටාරියා වැනි) කරන්න.
  • සැඟවුණු ක්ෂේත්‍රයක් එක් කරන්න.
  • ඔබගේ ශීර්ෂයට පහත ජාවාස්ක්‍රිප්ට් ශ්‍රිතය එක් කරන්න.

    ශ්‍රිත බූ () {targetText = document.getElementById ("HiddenField1"); sourceText = document.getElementById ("පරිශීලක පෙට්ටිය"); targetText.value = පැන යාම (sourceText.innerText); }

ඔබේ පෙළපතේ, බූ () යනුවෙන් හඳුන්වන මාරුවක් ඇතුළත් කරන්න:

<textarea id="userbox"  onchange="boo();"></textarea>

අවසාන වශයෙන් .NET හි භාවිතා කරන්න

string val = Server.UrlDecode(HiddenField1.Value);

මෙය එක් මාර්ගයක් බව මම දනිමි - ඔබට ද්වි-මාර්ග අවශ්‍ය නම් ඔබට නිර්මාණශීලී විය යුතුය, නමුත් ඔබට web.config සංස්කරණය කළ නොහැකි නම් මෙය විසඳුමක් සපයයි

මෙන්න මම (MC9000) ඉදිරිපත් කර jQuery හරහා භාවිතා කළ උදාහරණයක්:

$(document).ready(function () {

    $("#txtHTML").change(function () {
        var currentText = $("#txtHTML").text();
        currentText = escape(currentText); // Escapes the HTML including quotations, etc
        $("#hidHTML").val(currentText); // Set the hidden field
    });

    // Intercept the postback
    $("#btnMyPostbackButton").click(function () {
        $("#txtHTML").val(""); // Clear the textarea before POSTing
                               // If you don't clear it, it will give you
                               // the error due to the HTML in the textarea.
        return true; // Post back
    });


});

සහ සලකුණු කිරීම:

<asp:HiddenField ID="hidHTML" runat="server" />
<textarea id="txtHTML"></textarea>
<asp:Button ID="btnMyPostbackButton" runat="server" Text="Post Form" />

මෙය විශිෂ්ටයි. ජාවාස්ක්‍රිප්ට් මඟ හැරීම හරහා හැකර් කෙනෙකු පළ කිරීමට උත්සාහ කරන්නේ නම්, ඔවුන් දෝෂය දකිනු ඇත. ඔබට දත්ත සමුදායක් තුළ කේතනය කර ඇති මෙම දත්ත සියල්ලම සුරැකිය හැක, පසුව එය ඉවත් කරන්න (සේවාදායක පැත්තේ), සහ වෙනත් තැනක පෙන්වීමට පෙර ප්‍රහාර විග්‍රහ කර පරීක්ෂා කරන්න.


මෙය හොඳ විසඳුමක්. එය ඔබම පාලනය කර ගැනීමට සහ සම්පූර්ණ වෙබ් අඩවිය හෝ පිටුව අවලංගු නොකිරීමට නිසි අත්පොතකි
Fandango68

ටෙක්ස්ට්ආරියාව සඳහා ASP.Net පාලනයක් නොව (එනම් runat = "server") HTML සලකුණු කිරීමක් භාවිතා කිරීමට වග බලා ගන්න, ඉන්පසු සැඟවුණු සඳහා ASP.Net සැඟවුණු පාලනය භාවිතා කරන්න. ඕනෑම දෙයක් පාවා දීම මා දුටු හොඳම විසඳුම මෙයයි. ස්වාභාවිකවම, ඔබේ පැත්තේ XSS, SQL එන්නත් සඳහා සේවාදායක පැත්තේ විග්‍රහ කිරීමට ඔබට අවශ්‍යය, නමුත් අවම වශයෙන් ඔබට HTML
MC9000

escape(...)දිගු කාලයක් ගත විය හැකිය. මගේ නඩුවේදී, සලකුණු කිරීම සම්පූර්ණ (2MB) XML ගොනුවක් විය. ඔබට ඇසිය හැකිය, "ඇයි ඔබ නිකම්ම භාවිතා <input type="file"...නොකරන්නේ ... මම ඔබ සමඟ එකඟ වෙමි :)
රතු කව්පි

10

මෙහි ඇති අනෙක් විසඳුම් හොඳයි, කෙසේ වෙතත් සෑම මොඩල් දේපලකටම [AllowHtml] යෙදීම පසුපස ඇති රාජකීය වේදනාවකි, විශේෂයෙන් ඔබ හොඳ ප්‍රමාණයේ වෙබ් අඩවියක ආකෘති 100 කට වඩා තිබේ නම්.

මා වැනි නම්, ඔබට මෙම (IMHO ලස්සන තේරුමක් නැති) විශේෂාංගය වෙබ් අඩවිය පුරා හරවා යැවීමට අවශ්‍ය නම්, ඔබේ මූලික පාලකයේ ක්‍රියාත්මක කරන්න () ක්‍රමය ඉක්මවා යා හැකිය (ඔබට දැනටමත් මූලික පාලකයක් නොමැති නම්, එකක් සෑදීමට මම යෝජනා කරමි, ඒවා විය හැකිය පොදු ක්‍රියාකාරිත්වය යෙදීම සඳහා බෙහෙවින් ප්‍රයෝජනවත් වේ).

    protected override void Execute(RequestContext requestContext)
    {
        // Disable requestion validation (security) across the whole site
        ValidateRequest = false;
        base.Execute(requestContext);
    }

පරිශීලක ආදානයෙන් ලබාගත් අදහස් වලට ඔබ පොම්ප කරන සෑම දෙයක්ම HTML කේතනය කරන බවට වග බලා ගන්න (එය කෙසේ වෙතත් රේසර් සමඟ ASP.NET MVC 3 හි සුපුරුදු හැසිරීමයි, එබැවින් කිසියම් විකාර හේතුවක් නිසා ඔබ Html.Raw () භාවිතා කරන්නේ නම් මෙම අංගය අවශ්‍ය නොවිය යුතුය.


9

මටත් මේ දෝෂය ලැබුණා.

මගේ නඩුවේදී, පරිශීලකයෙකු áභූමිකාවේ නමක (ASP.NET සාමාජික සැපයුම්කරු සම්බන්ධයෙන්) උච්චාරණය කළ අක්ෂරයක් ඇතුළත් කළේය .

එම භූමිකාවට පරිශීලකයින්ට ලබා දීමේ ක්‍රමයකට මම භූමිකාවේ නම ලබා දෙන අතර $.ajaxතැපැල් ඉල්ලීම අවාසනාවන්ත ලෙස අසමත් විය ...

ගැටලුව විසඳීම සඳහා මම මෙය කළෙමි:

වෙනුවට

data: { roleName: '@Model.RoleName', users: users }

මෙය කරන්න

data: { roleName: '@Html.Raw(@Model.RoleName)', users: users }

@Html.Raw උපක්‍රමය කළා.

මට භූමිකාවේ නම HTML අගයක් ලෙස ලැබෙමින් තිබුණි roleName="Cadastro b&#225;s". HTML ආයතනය සමඟ මෙම අගය &#225;ASP.NET MVC විසින් අවහිර කරන ලදි. දැන් මට roleNameපරාමිති අගය තිබිය යුතු ආකාරයටම ලැබේ: roleName="Cadastro Básico"සහ ASP.NET MVC එන්ජිම ඉල්ලීම තවදුරටත් අවහිර නොකරයි.


9

ආබාධිත පිටුව වලංගු ඔබ ඇත්තටම, වැනි විශේෂ අක්ෂර අවශ්ය නම් >, <එවිට පරිශීලක ආදාන ප්රදර්ශනය කරන විට, දත්ත HTML-කේතාංකනය කර ඇති බව සහතික, ආදිය.

පිටු වලංගු කිරීම සමඟ ආරක්ෂක අවදානමක් ඇත, එබැවින් එය මඟ හැරිය හැක. පිටු වලංගු කිරීම තනිකරම රඳා නොපවතී.

බලන්න: http://web.archive.org/web/20080913071637/http://www.procheckup.com:80/PDFs/bypassing-dot-NET-ValidateRequest.pdf


සබැඳිය කැඩී ඇත.
පීටර් මෝර්ටෙන්සන්

7

විශේෂ අක්ෂර ප්‍රතිස්ථාපනය කිරීම සඳහා ඔබට ජාවාස්ක්‍රිප්ට්ගේ පැනීමේ (නූල්) ශ්‍රිතය භාවිතා කළ හැකිය . එවිට සර්වර් පැත්තේ සර්වර් භාවිතා කරන්න. එය ආපසු මාරු කිරීම සඳහා URLDecode (string) .

මේ ආකාරයෙන් ඔබට ආදාන වලංගු කිරීම අක්‍රිය කිරීමට අවශ්‍ය නොවන අතර එය අනෙක් ක්‍රමලේඛකයන්ට වඩාත් පැහැදිලි වනු ඇත, එම නූලට HTML අන්තර්ගතයක් තිබිය හැකිය.


7

සෑම පෝස්ට්බැක් එකකටම පෙර මම ඔබට අවශ්‍ය නැති අක්ෂර පරීක්ෂා කිරීමට ජාවාස්ක්‍රිප්ට් භාවිතා කළෙමි.

<asp:Button runat="server" ID="saveButton" Text="Save" CssClass="saveButton" OnClientClick="return checkFields()" />

function checkFields() {
    var tbs = new Array();
    tbs = document.getElementsByTagName("input");
    var isValid = true;
    for (i=0; i<tbs.length; i++) {
        if (tbs(i).type == 'text') {
            if (tbs(i).value.indexOf('<') != -1 || tbs(i).value.indexOf('>') != -1) {
                alert('<> symbols not allowed.');
                isValid = false;
            }
        }
    }
    return isValid;
}

මගේ පිටුව බොහෝ දුරට දත්ත ඇතුළත් කිරීමක් බව සහතික කර ඇති අතර, පසුබැසීම් සිදුකරන අංග ඉතා ස්වල්පයක් ඇත, නමුත් අවම වශයෙන් ඒවායේ දත්ත රඳවා තබා ගනී.


කුඩා වරහන් වෙනුවට විශාල වරහන් තිබිය යුතුය. `If ​​(tbs [i] .type == 'text') {` වෙනුවට` if (tbs (i) .type == 'text') like `
ශිල්පා සෝනි

5

ඔබට මෙවැනි දෙයක් භාවිතා කළ හැකිය:

var nvc = Request.Unvalidated().Form;

පසුව, nvc["yourKey"]වැඩ කළ යුතුය.


ස්තූතියි, ඔබේ පිළිතුර මගේ කාලය ගොඩක් ඉතිරි කළා
හබීබ්

4

මේවා පවතින තාක් කල් පමණක් චරිත "<" සහ ">" (නොව ද්විත්ව උපුටා ම) සහ ඔබ කරන්නේ <input වටිනාකම = "වැනි සන්දර්භය තුළ ඒවා භාවිතා මෙම " />, ඔයා තමයි ආරක්ෂිත (<textarea කල අතර, > මෙය </ textarea> ඇත්ත වශයෙන්ම ඔබ අවදානමට ලක් වනු ඇත). එය ඔබගේ තත්වය සරල කළ හැකි නමුත් තවත් ඕනෑම දෙයක් සඳහා පළ කරන ලද වෙනත් විසඳුම් භාවිතා කරන්න.


4

ඔබ <සහ> භාවිතා නොකළ යුතු බව ඔබේ පරිශීලකයින්ට පැවසීමට බලා‍පොරොත්තු වන්නේ නම්, සම්පූර්ණ ආකෘති පත්‍රය නැවත සැකසීමට / නැවත පළ කිරීමට (සහ සියලු ආදානය නැතිවීමට) ඔබට අවශ්‍ය නැත. එම (සහ වෙනත් භයානක විය හැකි) අක්‍ෂර සඳහා තිරය වටා ඇති වලංගු කරන්නා?


post
said

4

යෝජනා කිසිවක් මා වෙනුවෙන් වැඩ කළේ නැත. මුළු වෙබ් අඩවිය සඳහාම මෙම අංගය කෙසේ හෝ අක්‍රිය කිරීමට මට අවශ්‍ය නොවූයේ 99% කාලය මගේ පරිශීලකයින් වෙබ් පෝරම මත HTML තැබීමට අකමැති නිසාය. මෙම විශේෂිත යෙදුම භාවිතා කරන එකම තැනැත්තා මම බැවින් මම ක්‍රමවේදය වටා මගේම නිර්මාණයක් නිර්මාණය කළෙමි. මම පිටුපස ඇති කේතයේ ආදානය HTML බවට පරිවර්තනය කර එය මගේ දත්ත ගබඩාවට ඇතුළත් කරමි.

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.