যখন কোনও ক্লায়েন্টকে তাদের ওয়েবসাইটে ধনী পাঠ্য সম্পাদনা প্রয়োজন হয় আপনি কী করবেন?


18

এখনই আমরা সকলেই জানি, এক্সএসএস আক্রমণগুলি বিপজ্জনক এবং এড়ানো খুব সহজ । বিভিন্ন ফ্রেমওয়ার্কগুলি এইচটিএমএলকে এনকোড করা সহজ করে তোলে যেমন এএসপি.নেট এমভিসি:

<%= Html.Encode("string"); %>

কিন্তু যখন আপনার ক্লায়েন্টের প্রয়োজন হয় যে তারা সরাসরি তাদের মাইক্রোসফ্ট ওয়ার্ড ডকুমেন্ট থেকে তাদের সামগ্রী আপলোড করতে সক্ষম হন?

এখানে দৃশ্যধারণ করা হয়েছে: লোকেরা মাইক্রোসফ্ট শব্দ থেকে একটি ডাব্লুওয়াইএসআইওয়াইওয়াইজি সম্পাদক (এই ক্ষেত্রে টেনিএমসিই ) সম্পাদনা করে এবং সেই তথ্যটি একটি ওয়েব পৃষ্ঠায় পোস্ট করা যায় content

ওয়েবসাইটটি সর্বজনীন, তবে কেবলমাত্র সেই সংস্থার সদস্যদেরই একটি ওয়েবপৃষ্ঠায় পোস্টের তথ্যের অ্যাক্সেস থাকবে।

নিরাপদ ফ্যাশনে আমি কীভাবে এই প্রয়োজনীয়তাগুলি পরিচালনা করব? বর্তমানে ক্লায়েন্টের পোস্টগুলি কী তা পরীক্ষা করে নেওয়া হয়নি (যেহেতু কেবলমাত্র 'বিশ্বস্ত' ব্যবহারকারীরা পোস্ট করতে পারেন) তবে আমি এতে বিশেষভাবে সন্তুষ্ট নই এবং কোনও অ্যাকাউন্ট হ্যাক হওয়ার পরে এটি আরও লক করে রাখতে চাই।

আমি কেবল এই ধারণাগুলি সম্পর্কে অবগত যা এই প্রয়োজনীয়তাগুলি পূরণ করে তা হ'ল এইচটিএমএল ট্যাগকে শ্বেত তালিকাভুক্ত করা এবং সেগুলির মধ্য দিয়ে যেতে দেওয়া । অন্য উপায় আছে? যদি তা না হয় তবে ব্যবহারকারী কোনও উপায়ে ডাটাবেসে ইনপুট রাখার নিরাপদ উপায় কী, তবে কেবলমাত্র এটি সঠিকভাবে এনকোডযুক্ত এবং খারাপ ট্যাগগুলি ছাঁটাইতে প্রদর্শন করে?

সম্পর্কিত প্রশ্ন

ক্রস সাইট স্ক্রিপ্টিং (এক্সএসএস) প্রতিরোধ করা


নিস এখানে question- একটি অনুরূপ এক though- হয় stackoverflow.com/questions/445177/...
RichardOD

একমত। এটি অনুরূপ, তবে এটি একটি বিভ্রান্তিকর প্রশ্ন (প্রশ্নটি খুঁজে পাওয়া শক্ত) এবং অন্য কোনও উপায় আছে কিনা তা বিশেষভাবে জিজ্ঞাসা করে না। হোয়াইটলিস্ট না করে যদি এইচটিএমএল রেন্ডার করার অন্য কোনও উপায় থাকে তবে আমি এগুলিই করছি। যদি এইএসপি নেট নেট এমভিসি ভিউ ইঞ্জিন থাকে যা এটি যত্ন করে, এটিও জেনে রাখা ভাল।
জর্জ স্টকার

কোনও সুরক্ষা সম্পর্কিত নোটে, ফিল্টারিং ট্যাগগুলি সম্ভবত কোনও ইউজার ইন্টারফেসের দৃষ্টিকোণ থেকে সহায়ক হবে। দুর্ঘটনাক্রমে একটি কোণ বন্ধনী টাইপ করা এবং এটি এড়াতে ভুলে যাওয়া খুব সহজ। যেহেতু আমরা ওয়ার্ড থেকে অনুলিপি করা ব্যবহারকারীদের কথা বলছি, খারাপ ট্যাগগুলির মতো দেখতে কী তা ধরা এবং সেগুলি যথাযথভাবে এনকোড করা (যেমন & amp; lt;) যাতে ঠিক কাজ হয় তবে ভাল ধারণা।

পয়েন্ট # 4 সম্পর্কিত: আপনি বাজি ধরেন এটি এখনও একটি সমস্যা! বেশিরভাগ হ্যাক একটি অভ্যন্তর কাজ, সর্বোপরি। নির্দিষ্ট সম্পাদকের জন্য, ফ্রি টেক্সটবক্স ব্যবহার করে আমার সৌভাগ্য হয়েছে তবে এটি আপনার প্রয়োজনীয়তার সাথে বিশেষত এমভিসির সাথে কতটা ভাল মেলে তার সাথে আমি কথা বলতে পারি না।
জোয়েল কোহোর্ন

1
@ ধন্যবাদ ধন্যবাদ; সম্পাদনা করা হয়েছে। দেখে মনে হচ্ছে আমার প্রশ্নটি কোনও ধরণের ক্যাবলের দৃষ্টি আকর্ষণ করেছে; দ্রুত উত্তরাধিকার সূত্রে তিনটি ডাউনভোট এবং আপনার সুরক্ষা এবং সম্পাদনার অনুরোধ।
জর্জ স্টকার

উত্তর:


8

(ক ডেভেলপার হিসেবে আপনার জন্য) সবচেয়ে সহজ উপায় সম্ভবত অনেক বৈচিত্র এক বাস্তবায়ন হয় Markdown উদাহরণস্বরূপ, Markdown.NET , অথবা এমনকি ভালো (এই প্রোগ্রামটিতে), একটি WMD-সম্পাদক

তারপরে, আপনার ব্যবহারকারীরা সাধারণ এইচটিএমএল পেস্ট করতে সক্ষম হবেন, তবে বিপজ্জনক কিছুই নয়, এবং তারা তাদের প্রবেশ করা ডেটা প্রাকদর্শন করতে এবং পোস্ট করার আগেই কোনও বিভ্রান্তি সোজা করতে সক্ষম হবেন ...


আমি বিশ্বাস করি স্ট্যাকওভারফ্লো ডাব্লুএমডি সিনট্যাক্সের প্রয়োজন ছাড়াই একটি কাস্টম সম্পাদক ব্যবহার করেছেন
জন

1
স্ট্যাকওভারফ্লো প্রকৃতপক্ষে ডাব্লুএমডি ব্যবহার করে। blog.stackoverflow.com/2008/05/... stackoverflow.com/questions/98852/...

ডাব্লুএমডি সিনট্যাক্স বলতে কী বোঝ? আমি যতদূর বলতে পারি, সমস্ত ডাব্লুএমডি সিনট্যাক্স কাজ করে। এবং আমি এখনও এমন কিছু পাইনি যা কার্যকর হয় না ...

2
মার্কডাউন ব্যবহারে সমস্যা হ'ল মার্কডাউনটি স্বেচ্ছাসেবীকে মঞ্জুরি দেয়; সুতরাং নিজে থেকে এটি কোনও সমাধান নয়।
জর্জ স্টকার

7

হোয়াইটলিস্টিং প্রকৃতপক্ষে এক্সএসএস আক্রমণগুলি রোধ করার সর্বোত্তম উপায়, যখন ব্যবহারকারীরা সরাসরি বা কোনও সমৃদ্ধ পাঠ্য সম্পাদক ব্যবহার করে এইচটিএমএল প্রবেশ করতে দেয়।

আপনার অন্যান্য প্রশ্ন সম্পর্কে:

এমন কোনও ডাব্লুওয়াইএসআইডাব্লুওয়াইজি সম্পাদক আছে যাতে ফ্লাইতে শ্বেত তালিকাভুক্ত করার ক্ষমতা অন্তর্ভুক্ত রয়েছে?

আমি মনে করি না এটি কাজ করতে পারে। এর জন্য আপনার সার্ভার সাইড কোড দরকার এবং আরটিই ক্লায়েন্টের উপর চলে।

টিনিএমসিই আপনি চাইলে ট্যাগগুলি ফিল্টার করে তবে যেহেতু এটি ব্রাউজারে সংঘটিত হয় আপনি এটি বিশ্বাস করতে পারবেন না। এক্সটেন্ডেড_অালিড_অ্যালিমেন্টগুলি দেখুন । টিনিএমসিই (মক্সি) হোয়াইটলিস্ট করার পরামর্শ দেয়, এখানে দেখুন

আমার এমনকি এই নিয়েও চিন্তা করা উচিত কারণ এটি কেবল 'ব্যক্তিগত পোস্টিং' এর জন্য হবে

(খুব বিরল) নির্দিষ্ট কারণ না থাকলে আপনার সর্বদা এইচটিএমএল ফিল্টার করা উচিত। কিছু কারণ: ক) কার্যকারিতা যা আজকের অভ্যন্তরীণ ব্যবহারকারীর জন্য সম্ভবত জনসাধারণের জন্য আজ খ) অননুমোদিত অ্যাক্সেসের প্রভাব কম হবে

এটিকে কোনও ফর্মের মধ্যে এটি ডাটাবেসে সংরক্ষণ করার সর্বোত্তম উপায়, তবে কেবলমাত্র এটি সঠিকভাবে এনকোডযুক্ত এবং খারাপ ট্যাগগুলি ছাঁটাই করে প্রদর্শিত হয়?

এটাই আমি পছন্দ করি। আমি বিভিন্ন কারণে ডাটাবেসে প্রবেশের আগে ব্যবহারকারীর ইনপুট পরিবর্তন করতে পছন্দ করি না।


-1

আমি একই জিনিস করছি। আমি টিনিএমসিই ব্যবহার করছি এবং ওয়ার্ড ডকুমেন্টগুলি থেকে আটকানোর অনুমতি দিচ্ছি। সাইটটি রক্ষণাবেক্ষণকারী কেবলমাত্র নির্দিষ্ট লোকেরা প্রশাসক অঞ্চলের মাধ্যমে এটি করতে পারেন। এটিএসপি.নেট সদস্যপদ দ্বারা সুরক্ষিত। আমি এইচটিএমএল করা সহজ। এটি সর্বজনীন সাইটে প্রেরিত হয়ে গেলে এনকোড করুন।

আপনি নীচের কোডটি ব্যবহার করতে পারেন যদি এটি ডাটাবেসে রাখার আগে আপনি পছন্দ করেন তবে নিশ্চিত হন না যে এটি আপনাকে কী দেবে তা আপনাকে প্রভাবিত করবে। আপনার শ্বেতলিস্টের সাথে আপনাকে যেতে হতে পারে।

 /// <summary>
    /// Strip HTML
    /// </summary>
    /// <param name="str"></param>
    /// <returns></returns>
    public static string StripHTML(string str)
    {
        //Strips the HTML tags from strHTML 
        System.Text.RegularExpressions.Regex objRegExp = new System.Text.RegularExpressions.Regex("<(.|\n)+?>");

        // Replace all tags with a space, otherwise words either side 
        // of a tag might be concatenated 
        string strOutput = objRegExp.Replace(str, " ");

        // Replace all < and > with < and > 
        strOutput = strOutput.Replace("<", "<");
        strOutput = strOutput.Replace(">", ">");

        return strOutput;
    }

যদি তারা <script> সতর্কতা ("আরে") </script> এর মতো পাঠ্য সঞ্চয় করে থাকে এবং আপনি এইচটিএমএল করেন তবে এনকোড (<স্ক্রিপ্ট> সতর্কতা ("আরে") </ translation>) এটি কেবল মুদ্রণ করবে যে পৃষ্ঠাতে চালিত হয় না সতর্কতা
জন

আমি কোনও শ্বেতলিস্ট ব্যবহার করছি না, আমি এটি এখন যেমন আছে তেমন সংরক্ষণ করছি। উপরের ফাংশনটি সাহায্য করতে পারে তবে আমি কী জানি না যে এটির জন্য কী প্রভাব ফেলবে। আপনি কী সিদ্ধান্ত নিতে চান তা জানতে চাই। আমার পোস্টটি কেন নেতিবাচক হিসাবে চিহ্নিত হয়েছে?
জন

1
আমি অনুমান করবো কারণ এটি আপনার সফ্টওয়্যারটি যেভাবে করছে তা অত্যন্ত নিষ্পাপ বাস্তবায়ন; এমন সমস্ত ধরণের কৌশল আছে যা আপনার বাস্তবায়নের আশেপাশে পাবে।
জর্জ স্টকার

4
একটি শ্বেতলিস্ট একটি ভাল ধারণা, কিন্তু আপনার পদ্ধতি অবশ্যই না। রেজেেক্স কোনও পাঠ্যে ট্যাগগুলি সনাক্ত করার জন্য একটি নির্ভরযোগ্য উপায় নয়, কারণ এইচটিএমএল চমত্কারভাবে আবদ্ধ হতে পারে। এইচটিএমএল অ্যাজিলিটি প্যাকের মতো একটি লাইব্রেরি ব্যবহার করা আরও ভাল।
নলডোরিন

-1

.NET (যা আমি লিখেছিলাম) এর জন্য এইচটিএমএল সম্পাদনা নিয়ন্ত্রণ হতে পারে একটি বিকল্প ।

এটি .NET- র জন্য একটি WYSIWYM এইচটিএমএল সম্পাদক, যা কেবলমাত্র উপাদানগুলি বাদ দিয়ে এইচটিএমএল উপাদানগুলির একটি উপসেট সমর্থন <script>করে: সুতরাং সেভাবে এটি একটি শ্বেত তালিকা হিসাবে কাজ করে।

যদি এটি অভ্যন্তরীণ ব্যবহারের জন্য (যেমন একটি ইন্ট্রানেট সাইট) হয় তবে নিয়ন্ত্রণটি কোনও ওয়েব পৃষ্ঠায় এম্বেড করা যেতে পারে ।

আমি ওয়ার্ড থেকে আটকানোর জন্য একীভূত সমর্থন করি নি, তবে আমার কাছে এমন একটি উপাদান রয়েছে যা এই দিকের একটি পদক্ষেপ: একটি ডক থেকে এইচটিএমএল রূপান্তরকারী ; সুতরাং আমার কাছে বিল্ডিং ব্লক রয়েছে যা আপনি ASP.NET এ কোনও ডককে এইচটিএমএল রূপান্তর করতে, সম্পাদকটিতে HTML প্রদর্শন করতে পারেন etc.


-2

আপনি প্রকাশ্যে না আসা পর্যন্ত আমার আইএমএইচও আপনার ব্যবহারকারীদের উপর বিশ্বাস রাখে।

ঠিক আছে, আপনার প্রয়োজনীয়তা অর্জনের জন্য কোনও নির্ভরযোগ্য উপায় নেই। উদাহরণস্বরূপ, কোনও ডাব্লুওয়াইএসআইডাব্লুওয়াইজি সম্পাদক ইউআরএল (অপ্রত্যক্ষ ব্যবহার ট্র্যাক, অবৈধ সামগ্রী) বা পাঠ্য (অবৈধ পাঠ্য, ভুল বানানযুক্ত পাঠ্য, মিস করা পাঠ্য) সহ ফর্ম সন্নিবেশ করা ছবি রক্ষা করতে ব্যর্থ হয়েছে।

আমার দৃষ্টিভঙ্গি হ'ল আপনি যদি আপনার ব্যবহারকারীদের বিশ্বাস করতে পারেন, কেবল সমস্ত কিছুকে মঞ্জুরি দিন, কিছু জানা থাকলে বিপদজনক মার্কআপ থাকলে তাদেরকে সতর্ক করুন (তাদের ত্রুটি থেকে রক্ষা করুন)।

আপনি যদি বিশ্বাস না করেন তবে বিশেষ ধরণের মার্কআপ ব্যবহার করুন (যেমন মার্কডাউন)।

আমার প্রকল্পে আমরা সম্ভাব্য বিপজ্জনক সামগ্রীর জন্য বিশেষ ধরণের এবং এ জাতীয় সামগ্রীটি রেন্ডারিং এবং গ্রহণের জন্য বিশেষ পদ্ধতি ব্যবহার করি। এই কোডটি আমাদের থ্রেড মডেলটিতে উচ্চ চিহ্ন রয়েছে এবং এর প্রতি মনোযোগ খুব বেশি (উদাহরণস্বরূপ প্রতিটি পরিবর্তনকে দুটি স্বতন্ত্র কোডার দ্বারা পর্যালোচনা করা উচিত, আমাদের বিস্তৃত পরীক্ষার স্যুট রয়েছে)।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.