مرجع تخصصی برنامه نویسان

انجمن تخصصی برنامه نویسان فارسی زبان

کاربر سایت

محمد ملکی

عضویت از 1394/03/02

مشکل Antixss در mvc 6

  • دوشنبه 27 اردیبهشت 1395
  • 19:24
تشکر میکنم

سلام

من پروه ام mvc 6 هست Antixss رو هم نصب کردم از طریق Nuget نصب کردم

ادیتورمم Kendo  هست

یه مشکلی که هست اینه که وقتی از کد زیر استفاده می کنم متاسفانه تگ های style رو هم پاک میکنه

entity.Article_ShortDescription = Sanitizer.GetSafeHtml(entity.Article_ShortDescription);

مگه نباید GetSafeHtml کدهای script رو پاک کنه؟

متاسفانه این مشکل رو توو mvc 6 دارم دقیقاً من روش رو برای ورژن های پایین مثل mvc4 کار کردم هیچ مشکلی نداشت

دوستان حرفه ایی راهنماییم کنید

یه پروژه ی حیاتی دارم ممنونم از راهنماییتون

پاسخ های این پرسش

تعداد پاسخ ها : 5 پاسخ
کاربر سایت

ایمان مدائنی

عضویت از 1392/01/20

  • سه شنبه 28 اردیبهشت 1395
  • 12:20

از کد زیر استفاده کنید

امیدوارم مشکل حل بشه

Sanitizer.GetSafeHtmlFragment("<b>hello2</b><script>")

 

کاربر سایت

محمد ملکی

عضویت از 1394/03/02

  • سه شنبه 28 اردیبهشت 1395
  • 17:04

آقای مدائنی حل نشد یعنی یخ مشکل دیگه هست

این کد Editor ام هست

   @(Html.Kendo().EditorFor(model => model.Gallery_Text)
.Name("Gallery_Text")
            .Encode(false)
            .Tools(tools => tools.Clear()
    .Bold().Italic().Underline().Strikethrough()
    .FontName().FontSize().FontColor().BackColor()
    .JustifyLeft().JustifyCenter().JustifyRight().JustifyFull()
    .InsertUnorderedList().InsertOrderedList()
    .CreateLink().Unlink()
    )
                )

ببینید وقتی Encode رو حذف می کنم درست میشه یعنی فقط تگ های script حذف میشه اما میخوام مثلاً توو ویرایش اون متن رو دوباره توو ادیتور نشون بدم کد html نشون میده شکل زیر بدون encode هست

این مشکل رو چطوری حل کنم میدونم فقط شما میدونید

ممنونم

 

کاربر سایت

افشین ایمانی زاده

عضویت از 1393/12/24

  • سه شنبه 28 اردیبهشت 1395
  • 19:36

دوست عزیز در controller قبل از این که شی رو به view پاس بدید به صورت زیر عمل کنید

Gallery.Gallery_Text = HttpUtility.HtmlDecode(Gallery.Gallery_Text);

 

کاربر سایت

محمد ملکی

عضویت از 1394/03/02

  • سه شنبه 28 اردیبهشت 1395
  • 20:39

آقای ایمان زاده ممنون جواب داد

فقط یه سوال دیگه من میخوام مثلاً دو کلمه از متن رو در ستون kendo grid نشون بده و بقیه اش ... باشه اما مشکل اینه میگم مثلاً 20 کاراکتر بخوونه چون کد html هست ممکن هست وسط تگ باشه و جواب نمیده شما راه حلی ندارید؟

متوجه منظورم شدید؟

 

 

کاربر سایت

افشین ایمانی زاده

عضویت از 1393/12/24

  • چهارشنبه 29 اردیبهشت 1395
  • 22:59

دوست عزیز برای این کار فقط میشه تعدادی از کاراکتر های اولیه رو خوند و نمایش داد مثلا در کد زیر من 20 کاراکتر رو میخونم حالا شما بسته به نیازتون تعداد کاراکتر ها رو تغییر بدید

 columns.Bound(model => model.Gallery_Text).Template(@<text>
                                    <span>@(item.Gallery_Text.Length < 20 ? item.Gallery_Text.Substring(0,19) ? item.Gallery_Text.Substring(0,item.Gallery_Text.Length -1)  ) ...</span>
                                </text>);

 

کاربرانی که از این پست تشکر کرده اند

هیچ کاربری تا کنون از این پست تشکر نکرده است

اگر نیاز به یک مشاور در زمینه طراحی سایت ، برنامه نویسی و بازاریابی الکترونیکی دارید

با ما تماس بگیرید تا در این مسیر همراهتان باشیم :)