Skip to content
KitploitKITPLOIT
उपकरणएक्सप्लॉइटब्लॉग
Log in
जमा करें
उपकरणएक्सप्लॉइटब्लॉग
जमा करें

हैकिंग, पेनटेस्ट और साइबर सुरक्षा उपकरण आपके सुरक्षा शस्त्रागार के लिए!

Kitploit हैकिंग, साइबर सुरक्षा और पेंटेस्टिंग टूल्स की एक निर्देशिका है। कमजोरियों को खोजने, सिस्टम का विश्लेषण करने, परीक्षण को स्वचालित करने और अपनी सुरक्षा को मजबूत करने के लिए नवीनतम प्रोजेक्ट अपडेट खोजें।

फ़ीडसंपर्कगोपनीयता© 2026 Kitploit

टूल निर्देशिका

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
sanitize — रूबी HTML और CSS सैनिटाइज़र। | Kitploit
उपकरण/GitHubGitHub/rgrove/sanitize
रक्षात्मक उपकरणकोड विश्लेषणवेब सुरक्षा
GitHubrgrove/sanitize

sanitize

रूबी HTML और CSS सैनिटाइज़र।

रिपॉजिटरी देखें
2.1k145171 महीना पहलेKitploit द्वारा समीक्षित

सबसे लोकप्रिय

सभी देखें →

हमारे समुदाय द्वारा सबसे अधिक उपयोग किए जाने वाले उपकरण खोजें।

सभी उपकरण खोजें

हमारे उपकरणों का संग्रह ब्राउज़ करें

सभी उपकरण देखें →
साझा करें

Sanitize

Sanitize एक allowlist-आधारित HTML और CSS सैनिटाइज़र है। यह किसी स्ट्रिंग से सभी HTML और/या CSS हटा देता है, सिवाय उन एलिमेंट्स, एट्रिब्यूट्स और प्रॉपर्टीज़ के जिन्हें आप अनुमति देना चुनते हैं।

एक सरल कॉन्फ़िगरेशन सिंटैक्स का उपयोग करके, आप Sanitize को बता सकते हैं कि कुछ HTML एलिमेंट्स, उन एलिमेंट्स के भीतर कुछ एट्रिब्यूट्स, और यहाँ तक कि URL वाले एट्रिब्यूट्स के भीतर कुछ URL प्रोटोकॉल की अनुमति दी जाए। आप CSS वाले एलिमेंट्स या एट्रिब्यूट्स में विशिष्ट CSS प्रॉपर्टीज़, @ नियम और URL प्रोटोकॉल की भी अनुमति दे सकते हैं। जिस भी HTML या CSS को आप स्पष्ट रूप से अनुमति नहीं देते, उसे हटा दिया जाएगा।

Sanitize Nokogiri HTML5 parser पर आधारित है, जो HTML को उसी तरह पार्स करता है जैसे आधुनिक ब्राउज़र करते हैं, और Crass पर, जो CSS को उसी तरह पार्स करता है जैसे आधुनिक ब्राउज़र करते हैं। जब तक आपका allowlist कॉन्फ़िग केवल सुरक्षित मार्कअप और CSS की अनुमति देता है, तब तक सबसे विकृत या दुर्भावनापूर्ण इनपुट भी सुरक्षित आउटपुट में परिवर्तित हो जाएगा।

Gem Version Tests

[!WARNING]

Sanitize <math> या <svg> एलिमेंट्स की सामग्री को पूरी तरह से सैनिटाइज़ नहीं कर सकता। MathML और SVG एलिमेंट्स foreign elements हैं जो सामान्य HTML पार्सिंग नियमों का पालन नहीं करते।

डिफ़ॉल्ट रूप से, Sanitize सभी MathML और SVG एलिमेंट्स को हटा देगा। यदि आप कस्टम एलिमेंट allowlist में MathML या SVG एलिमेंट्स जोड़ते हैं, तो आप अपने एप्लिकेशन में एक सुरक्षा भेद्यता उत्पन्न कर सकते हैं।

लिंक

  • होम
  • API दस्तावेज़
  • इश्यूज़
  • रिलीज़ इतिहास
  • ऑनलाइन डेमो

इंस्टॉलेशन

gem install sanitize

त्वरित शुरुआत

require 'sanitize'

# Clean up an HTML fragment using Sanitize's permissive but safe Relaxed config.
# This also sanitizes any CSS in `<style>` elements or `style` attributes.
Sanitize.fragment(html, Sanitize::Config::RELAXED)

# Clean up an HTML document using the Relaxed config.
Sanitize.document(html, Sanitize::Config::RELAXED)

# Clean up a standalone CSS stylesheet using the Relaxed config.
Sanitize::CSS.stylesheet(css, Sanitize::Config::RELAXED)

# Clean up some CSS properties using the Relaxed config.
Sanitize::CSS.properties(css, Sanitize::Config::RELAXED)

उपयोग

Sanitize निम्नलिखित प्रकार के इनपुट को सैनिटाइज़ कर सकता है:

  • HTML फ़्रैगमेंट
  • HTML दस्तावेज़
  • HTML <style> एलिमेंट्स के अंदर CSS स्टाइलशीट
  • HTML style एट्रिब्यूट्स के अंदर CSS प्रॉपर्टीज़
  • स्टैंडअलोन CSS स्टाइलशीट
  • स्टैंडअलोन CSS प्रॉपर्टीज़

[!WARNING]

Sanitize <math> या <svg> एलिमेंट्स की सामग्री को पूरी तरह से सैनिटाइज़ नहीं कर सकता। MathML और SVG एलिमेंट्स foreign elements हैं जो सामान्य HTML पार्सिंग नियमों का पालन नहीं करते।

डिफ़ॉल्ट रूप से, Sanitize सभी MathML और SVG एलिमेंट्स को हटा देगा। यदि आप किसी कस्टम एलिमेंट allowlist में MathML या SVG एलिमेंट्स जोड़ते हैं, तो आप अपने एप्लिकेशन में सुरक्षा भेद्यता उत्पन्न कर सकते हैं।

HTML फ़्रैगमेंट

फ़्रैगमेंट HTML का एक स्निपेट है जिसमें रूट-स्तरीय <html> एलिमेंट नहीं होता।

यदि आप कोई कॉन्फ़िगरेशन विकल्प निर्दिष्ट नहीं करते हैं, तो Sanitize डिफ़ॉल्ट रूप से अपनी सबसे सख्त सेटिंग्स का उपयोग करेगा, जिसका अर्थ है कि यह सभी HTML को हटा देगा और केवल सुरक्षित टेक्स्ट पीछे छोड़ेगा।

html = '<b><a href="http://foo.com/">foo</a></b><img src="https://raw.githubusercontent.com/rgrove/sanitize/main/bar.jpg">'
Sanitize.fragment(html)
# => "foo"

विशिष्ट तत्वों को रखने के लिए, उन्हें तत्व अनुमति-सूची में जोड़ें।

Sanitize.fragment(html, elements: ['b'])
# => "<b>foo</b>"

HTML दस्तावेज़

किसी दस्तावेज़ को सैनिटाइज़ करते समय, <html> एलिमेंट को allowlist में शामिल करना आवश्यक है। आप अच्छी तरह से बने दस्तावेज़ प्रकार परिभाषाओं (document type definitions) की अनुमति देने के लिए :allow_doctype को true पर भी सेट कर सकते हैं।

html = %[
  <!DOCTYPE html>
  <html>
    <b><a href="http://foo.com/">foo</a></b><img src="https://raw.githubusercontent.com/rgrove/sanitize/main/bar.jpg">
  </html>
]

Sanitize.document(html,
  allow_doctype: true,
  elements: ['html']
)
# => "<!DOCTYPE html><html>foo\n  \n</html>"

HTML में CSS

किसी HTML फ़्रैगमेंट या दस्तावेज़ में CSS को सैनिटाइज़ करने के लिए, पहले <style> एलिमेंट और/या style एट्रिब्यूट को allowlist करें। फिर उन CSS प्रॉपर्टीज़, @ नियमों और URL प्रोटोकॉल को allowlist करें जिन्हें आप अनुमति देना चाहते हैं। आप यह भी चुन सकते हैं कि CSS टिप्पणियों या ब्राउज़र संगतता हैक्स को अनुमति दी जाए या नहीं।

html = %[
  <style>
    div { color: green; width: 1024px; }
  </style>

  <div style="height: 100px; width: 100px;"></div>
  <p>hello!</p>
]

Sanitize.fragment(html,
  elements: ['div', 'style'],
  attributes: {'div' => ['style']},

  css: {
    properties: ['width']
  }
)
#=> %[
#   <style>
#     div {  width: 1024px; }
#   </style>
#
#   <div style=" width: 100px;"></div>
#   hello!
# ]

स्टैंडअलोन CSS

Sanitize HTML पार्सर को लागू किए बिना एक स्टैंडअलोन CSS स्टाइलशीट या प्रॉपर्टी स्ट्रिंग को आसानी से साफ़ कर देगा।

[!WARNING] इसका उपयोग केवल स्टैंडअलोन CSS फ़ाइल में उपयोग के लिए CSS को सैनिटाइज़ करने हेतु किया जाना चाहिए। HTML संदर्भ में उपयोग के लिए CSS को सुरक्षित रूप से सैनिटाइज़ करने के लिए, जैसे कि <style> एलिमेंट या style एट्रिब्यूट में, आपको पिछले अनुभागों में वर्णित अनुसार उपयुक्त allowlist के साथ Sanitize.document() या Sanitize.fragment() का उपयोग करना होगा। ऐसा न करने पर HTML इंजेक्शन हमले सक्षम हो सकते हैं।

css = %[
  @import url(evil.css);

  a { text-decoration: none; }

  a:hover {
    left: expression(alert('xss!'));
    text-decoration: underline;
  }
]

Sanitize::CSS.stylesheet(css, Sanitize::Config::RELAXED)
# => %[
#
#
#   a { text-decoration: none; }
#
#   a:hover {
#
#     text-decoration: underline;
#   }
# ]

Sanitize::CSS.properties(%[
  left: expression(alert('xss!'));
  text-decoration: underline;
], Sanitize::Config::RELAXED)
# => %[
#
#   text-decoration: underline;
# ]

कॉन्फ़िगरेशन

अल्ट्रा-सेफ़ डिफ़ॉल्ट सेटिंग्स के अलावा, Sanitize तीन अन्य अंतर्निहित कॉन्फ़िगरेशन के साथ आता है जिन्हें आप सीधे उपयोग कर सकते हैं या अपनी आवश्यकताओं को पूरा करने के लिए अनुकूलित कर सकते हैं।

Sanitize::Config::RESTRICTED

केवल बहुत सरल इनलाइन मार्कअप की अनुमति देता है। कोई लिंक, छवियाँ या ब्लॉक तत्व नहीं।

Sanitize.fragment(html, Sanitize::Config::RESTRICTED)
# => "<b>foo</b>"

Sanitize::Config::BASIC

फ़ॉर्मेटिंग एलिमेंट्स, लिंक और सूचियों सहित विविध मार्कअप की अनुमति देता है।

छवियों और तालिकाओं की अनुमति नहीं है, लिंक FTP, HTTP, HTTPS और mailto प्रोटोकॉल तक सीमित हैं, और SEO स्पैम को कम करने के लिए सभी लिंक में rel="nofollow" एट्रिब्यूट जोड़ा जाता है।

Sanitize.fragment(html, Sanitize::Config::BASIC)
# => '<b><a href="http://foo.com/" rel="nofollow">foo</a></b>'

Sanitize::Config::RELAXED

यह और भी अधिक विविध प्रकार के मार्कअप की अनुमति देता है, जिसमें छवियाँ और तालिकाएँ, साथ ही सुरक्षित CSS शामिल हैं। लिंक अभी भी FTP, HTTP, HTTPS, और mailto प्रोटोकॉल तक सीमित हैं, जबकि छवियाँ HTTP और HTTPS तक सीमित हैं। इस मोड में, लिंक में rel="nofollow" नहीं जोड़ा जाता है।

Sanitize.fragment(html, Sanitize::Config::RELAXED)
# => '<b><a href="http://foo.com/">foo</a></b><img src="https://raw.githubusercontent.com/rgrove/sanitize/main/bar.jpg">'

कस्टम कॉन्फ़िगरेशन

यदि अंतर्निहित मोड आपकी आवश्यकताओं को पूरा नहीं करते हैं, तो आप आसानी से एक कस्टम कॉन्फ़िगरेशन निर्दिष्ट कर सकते हैं:

Sanitize.fragment(html,
  elements: ['a', 'span'],
टूल डाउनलोड करें