वेब पर कब्जा और परिवर्तित करने के लिए उपकरण

कैप्चर की सामग्री की सुरक्षा कैसे करें?

एन्क्रिप्टेड कैप्चर

सामान्य डेटा संरक्षण विनियमन, या जीडीपीआर जैसे कानूनों के युग में उपयोगकर्ता की जानकारी की सुरक्षा करना पहले से कहीं अधिक महत्वपूर्ण हो गया है। जब कोई कैप्चर लिया जाता है तो इसे डाउनलोड करने में सक्षम बनाने के लिए इसे हमारे सर्वर पर थोड़े समय के लिए कैश किया जाता है। जबकि हमारे सर्वर सुरक्षित हैं और हम बिना अनुमति के किसी उपयोगकर्ता की कैप्चर का निरीक्षण नहीं करते हैं। व्यक्तिगत जानकारी संभालते समय कुछ परिदृश्यों में यह पर्याप्त सुरक्षा नहीं है।

पहला संभावित सुधार आपके कैश की लंबाई को शून्य मिनट में बदलकर कैप्चर को कैश करना बंद करना है खाता पृष्ठ. हालाँकि, ध्यान दें, इसका मतलब यह होगा कि कैप्चर बहुत लंबे समय तक डाउनलोड करने के लिए उपलब्ध नहीं होगा, इसलिए इसे बनने के तुरंत बाद डाउनलोड किया जाना चाहिए।

एक अन्य संभावित सुरक्षा चिंता हमें संवेदनशील डेटा भेजने की वास्तविक प्रक्रिया है। इस डेटा को सुरक्षित करने के लिए आपको सबसे पहले यह करना होगा एसएसएल सक्षम करें, फिर एक बार जब हम डेटा प्राप्त करते हैं और इसे संसाधित किया जाता है, जो काफी तेज़ी से होता है, तो यह सुनिश्चित करने के लिए कि कोई सुरक्षा उल्लंघन नहीं है, यह स्वचालित रूप से हमारे सिस्टम से हटा दिया जाएगा।

PDF या DOCX कैप्चर में अधिक सुरक्षा भी जोड़ी जा सकती है दस्तावेज़ों की सुरक्षा करने वाला पासवर्ड. यह सुनिश्चित करता है कि केवल सही पासवर्ड वाले उपयोगकर्ता ही संरक्षित फ़ाइल तक पहुंच सकते हैं।

हालाँकि, यदि आप अस्पताल के रिकॉर्ड आदि जैसी बहुत संवेदनशील जानकारी कैप्चर कर रहे हैं और अतिरिक्त स्तर की सुरक्षा चाहते हैं तो आप परिणामी कैप्चर को स्वयं एन्क्रिप्ट कर सकते हैं। ऐसा करने के लिए आप प्रत्येक अनुरोध के साथ एक एन्क्रिप्शन कुंजी निर्दिष्ट करते हैं, ये कुंजियाँ GrabzIt द्वारा संग्रहीत नहीं की जाती हैं। इस कुंजी का उपयोग सूचना की सुरक्षा करने वाले कैप्चर को एन्क्रिप्ट करने के लिए किया जाएगा। चूंकि हम कुंजी संग्रहीत नहीं करते हैं इसलिए हम एन्क्रिप्टेड कैप्चर को पुनर्प्राप्त करने में आपकी सहायता नहीं कर सकते। एक बार जब आप कैप्चर प्राप्त कर लेते हैं तो उसे डिक्रिप्ट करने के लिए पहले जेनरेट की गई कुंजी का उपयोग करें।

नीचे दिए गए उदाहरण में एक क्रिप्टोग्राफ़िक रूप से सुरक्षित कुंजी बनाई जाती है और GrabzIt को भेजी जाती है, फिर इसका उपयोग कैप्चर को एन्क्रिप्ट करने के लिए किया जाता है। फिर परिणाम को डिक्रिप्ट करने के लिए इसी एन्क्रिप्शन कुंजी का उपयोग किया जाता है।

GrabzItClient grabzIt = new GrabzItClient("Sign in to view your Application Key", "Sign in to view your Application Secret");
grabzIt.UseSSL(true);

string encryptionKey = grabzIt.CreateEncryptionKey();

ImageOptions options = new ImageOptions();
options.EncryptionKey = encryptionKey;

grabzIt.URLToImage("http://www.spacex.com", options);
GrabzItFile encryptedCapture = grabzIt.SaveTo();

GrabzItFile decryptedCapture = grabzIt.Decrypt(encryptedCapture, encryptionKey);

नीचे दिए गए उदाहरण में एक क्रिप्टोग्राफ़िक रूप से सुरक्षित कुंजी बनाई जाती है और GrabzIt को भेजी जाती है, फिर इसका उपयोग कैप्चर को एन्क्रिप्ट करने के लिए किया जाता है। फिर परिणाम को डिक्रिप्ट करने के लिए इसी एन्क्रिप्शन कुंजी का उपयोग किया जाता है।

जावा 6, 7 और 8 के साथ एन्क्रिप्टेड कैप्चर का उपयोग करने के लिए कृपया जावा क्रिप्टोग्राफी एक्सटेंशन (जेसीई) असीमित शक्ति क्षेत्राधिकार नीति फ़ाइलें स्थापित करें। into जावा इंस्टॉलेशन फ़ोल्डर के सभी /jre/lib/security/ फ़ोल्डर।

GrabzItClient grabzIt = new GrabzItClient("Sign in to view your Application Key", "Sign in to view your Application Secret");
grabzIt.UseSSL(true);

String encryptionKey = grabzIt.CreateEncryptionKey();

ImageOptions options = new ImageOptions();
options.setEncryptionKey(encryptionKey);

grabzIt.URLToImage("http://www.spacex.com", options);
GrabzItFile encryptedCapture = grabzIt.SaveTo();

GrabzItFile decryptedCapture = grabzIt.Decrypt(encryptedCapture, encryptionKey);

नीचे दिए गए उदाहरण में एक क्रिप्टोग्राफ़िक रूप से सुरक्षित कुंजी स्वचालित रूप से बनाई जाती है और GrabzIt को भेजी जाती है, फिर इसका उपयोग कैप्चर को एन्क्रिप्ट करने के लिए किया जाता है। फिर इसी एन्क्रिप्शन कुंजी का उपयोग डेटायूआरआई विधि को सही करके परिणाम को स्वचालित रूप से डिक्रिप्ट करने के लिए किया जाता है, जिसे बाद में कॉलबैक विधि में पढ़ा जा सकता है।

<html>
<head>
<script src="https://cdn.jsdelivr.net/npm/@grabzit/js@3.5.2/grabzit.min.js"></script>
</head>
<body>
<img id="capture"></img>
function callback(dataUri)
{
    document.getElementById('capture').src = dataUri;
}
<script type="text/javascript">
GrabzIt("Sign in to view your Application Key").UseSSL().Encrypt().ConvertURL("http://www.spacex.com").DataURI(callback, true);
</script>
</body>
</html>

नीचे दिए गए उदाहरण में एक क्रिप्टोग्राफ़िक रूप से सुरक्षित कुंजी बनाई जाती है और GrabzIt को भेजी जाती है, फिर इसका उपयोग कैप्चर को एन्क्रिप्ट करने के लिए किया जाता है। फिर परिणाम को डिक्रिप्ट करने के लिए इसी एन्क्रिप्शन कुंजी का उपयोग किया जाता है।

var grabzit = require('grabzit');

var client = new grabzit("Sign in to view your Application Key", "Sign in to view your Application Secret");
client.use_ssl(true);

var encryptionKey = client.create_encryption_key();

client.url_to_image("http://www.spacex.com", {"encryptionKey":encryptionKey});
client.save_to(null, function (error, result){
    if (error != null){
        throw error;
    }
    var decryptedBytes = client.decrypt(result, encryptionKey);
}); 	

दुर्भाग्य से पर्ल एईएस एन्क्रिप्शन को मूल रूप से डिक्रिप्ट नहीं कर सकता है और इसके लिए बाहरी निष्पादन योग्य या सी संकलन की आवश्यकता होती है। इसलिए हमने इस कार्यक्षमता को हमारे पर्ल एपीआई में नहीं जोड़ा है, इसके बजाय आप नीचे दिए गए गाइड का उपयोग करके इस कार्यक्षमता को स्वयं जोड़ सकते हैं।

$grabzIt = GrabzItClient->new("Sign in to view your Application Key", "Sign in to view your Application Secret");
$grabzIt->UseSSL(1);

$options = GrabzItImageOptions->new();
$options->encryptionKey("UUK2Xo9OLT2dFvN0wPBGOMZRYqD6WxqFtrZK9YrG+Hg=");
$grabzIt->URLToImage("http://www.spacex.com", $options);
//needs to be decrypted
$data = $grabzIt->SaveTo();

नीचे दिए गए उदाहरण में एक क्रिप्टोग्राफ़िक रूप से सुरक्षित कुंजी बनाई जाती है और GrabzIt को भेजी जाती है, फिर इसका उपयोग कैप्चर को एन्क्रिप्ट करने के लिए किया जाता है। फिर परिणाम को डिक्रिप्ट करने के लिए इसी एन्क्रिप्शन कुंजी का उपयोग किया जाता है।

$grabzIt = new \GrabzIt\GrabzItClient("Sign in to view your Application Key", "Sign in to view your Application Secret");
$grabzIt->UseSSL(true);

$encryptionKey = $grabzIt->CreateEncryptionKey();

$options = new \GrabzIt\GrabzItImageOptions();
$options->setEncryptionKey($encryptionKey);

$grabzIt->URLToImage("http://www.spacex.com", $options);
$encryptedData = $grabzIt->SaveTo();

$decryptedData = $grabzIt->Decrypt($encryptedData, $encryptionKey);

नीचे दिए गए उदाहरण में एक क्रिप्टोग्राफ़िक रूप से सुरक्षित कुंजी बनाई जाती है और GrabzIt को भेजी जाती है, फिर इसका उपयोग कैप्चर को एन्क्रिप्ट करने के लिए किया जाता है। फिर परिणाम को डिक्रिप्ट करने के लिए इसी एन्क्रिप्शन कुंजी का उपयोग किया जाता है।

grabzIt = GrabzItClient.GrabzItClient("Sign in to view your Application Key", "Sign in to view your Application Secret")
grabzIt.UseSSL(True)

encryptionKey = grabzIt.CreateEncryptionKey()

options = GrabzItImageOptions.GrabzItImageOptions()
options.encryptionKey = encryptionKey

grabzIt.URLToImage("http://www.spacex.com", options)
encryptedData = grabzIt.SaveTo()

decryptedData = grabzIt.Decrypt(encryptedData, encryptionKey)

नीचे दिए गए उदाहरण में एक क्रिप्टोग्राफ़िक रूप से सुरक्षित कुंजी बनाई जाती है और GrabzIt को भेजी जाती है, फिर इसका उपयोग कैप्चर को एन्क्रिप्ट करने के लिए किया जाता है। फिर परिणाम को डिक्रिप्ट करने के लिए इसी एन्क्रिप्शन कुंजी का उपयोग किया जाता है।

grabzIt = GrabzIt::Client.new("Sign in to view your Application Key", "Sign in to view your Application Secret")
grabzIt.use_ssl(true)

encryptionKey = grabzIt.create_encryption_key()

options = GrabzIt::ImageOptions.new()
options.encryptionKey = encryptionKey

grabzIt.url_to_image("http://www.spacex.com", options)
encryptedData = grabzIt.save_to()

decryptedData = grabzIt.decrypt(encryptedData, encryptionKey)

GrabzIt का कैप्चर एन्क्रिप्शन कैसे काम करता है

यह मार्गदर्शिका बहुत तकनीकी है और इसका उद्देश्य डेवलपर्स को यह समझने में मदद करना है कि हमारा एन्क्रिप्शन कैसे काम करता है। यह पर्ल डेवलपर्स के लिए विशेष रूप से उपयोगी होना चाहिए, क्योंकि भाषा में एक ओपन सोर्स पर्ल पैकेज नहीं है जिसके लिए ओपन एसएसएल जैसे तीसरे पक्ष के टूल को पूरा करने या इंस्टॉल करने की आवश्यकता नहीं होती है।

एन्क्रिप्टेड कैप्चर 256 बिट उन्नत एन्क्रिप्शन स्टैंडर्ड (एईएस) एन्क्रिप्शन का उपयोग करता है। यह ऑपरेशन के सिफर ब्लॉक चेनिंग (सीबीसी) ब्लॉक सिफर मोड का भी उपयोग करता है।

GrabzIt के लिए कैप्चर को एन्क्रिप्ट करने के लिए एक आधार 64 एन्क्रिप्शन कुंजी जिसे 44 वर्ण लंबे विकल्प ऑब्जेक्ट में पारित करने की आवश्यकता होती है। इस एन्क्रिप्शन कुंजी को बनाने के लिए आपको 32 यादृच्छिक क्रिप्टोग्राफ़िक रूप से सुरक्षित बाइट्स चुननी चाहिए। फिर इन्हें आधार 64 पर एन्कोड किया जाना चाहिए। चूंकि वे क्रिप्टोग्राफ़िक रूप से सुरक्षित बाइट्स हैं, इसलिए उनका अनुमान लगाना मुश्किल होगा और इसलिए उन्हें क्रैक करना कठिन होगा।

जब GrabzIt को एन्क्रिप्शन कुंजी के साथ कैप्चर अनुरोध प्राप्त होता है, तो कैप्चर एन्क्रिप्ट किया जाता है और इनिशियलाइज़ेशन वेक्टर (IV) फ़ाइल की शुरुआत में डाला जाता है। यह IV 16 बाइट्स लंबा है और डिक्रिप्शन से पहले इसे फ़ाइल के सामने से हटाने की आवश्यकता है। डिक्रिप्टिंग को सक्षम करने के लिए IV को एईएस एल्गोरिदम में भी पारित किया जाना चाहिए। जब किसी कैप्चर को एन्क्रिप्ट किया जाता है तो फ़ाइल में कोई पैडिंग नहीं जोड़ी जाती है, इसलिए डिक्रिप्ट करते समय पैडिंग को अक्षम करना होगा।

याद रखें कि यदि आपने हमारे मौजूदा क्लाइंट एपीआई में से किसी एक में सुधार किया है या पूरी तरह से नई भाषा के लिए आप इसे समुदाय के साथ साझा कर सकते हैं GitHub.