Web Yakalama ve Dönüştürme Araçları

Yakalamaların içeriği nasıl korunur?

Şifreli Yakalamalar

Genel Veri Koruma Yönetmeliği veya kullanıcı bilgilerini koruyan GDPR gibi yasalar çağında her zamankinden daha önemli hale geldi. Bir yakalama alındığında, indirilebilmesi için sunucularımızda kısa bir süre önbelleğe alınır. Sunucularımız güvende ve kullanıcı izinlerini izinsiz olarak incelemiyoruz. Bu, kişisel bilgileri kullanırken bazı senaryolarda yeterli koruma değildir.

İlk potansiyel gelişme, cihazınızda önbellek uzunluğunu sıfır dakikaya değiştirerek önbellek yakalamalarını artık engellemektir. hesap sayfası. Ancak, bu, yakalamanın çok uzun süre indirilemeyeceği anlamına geleceğinden, oluşturulduktan hemen sonra indirilmesi gerektiği anlamına gelecektir.

Başka bir olası güvenlik kaygısı, hassas verileri bize göndermenin gerçek sürecidir. Bu verilerin güvenliğini sağlamak için önce SSL'yi etkinleştirDaha sonra, verileri aldığımızda ve oldukça hızlı bir şekilde işlendikten sonra işlendiğinde, güvenlik ihlali olmadığından emin olmak için sistemimizden otomatik olarak silinir.

PDF veya DOCX yakalamalara daha fazla güvenlik de eklenebilir. belgeleri koruyan şifre. Bu, yalnızca doğru şifreye sahip kullanıcıların korumalı bir dosyaya erişebilmelerini sağlar.

Bununla birlikte, hastane kayıtları vb. Gibi çok hassas bilgileri alıyorsanız ve ekstra bir koruma düzeyi elde ediyorsanız, elde edilen kayıtları şifreleyebilirsiniz. Bunu yapmak için her istekte bir şifreleme anahtarı belirtirsiniz, bu anahtarlar GrabzIt tarafından saklanmaz. Bu anahtar, bilgileri koruyan yakalamayı şifrelemek için kullanılır. Anahtarı saklamadığımız için şifreli yakalamaları kurtarmanıza yardımcı olamayız. Yakalamayı aldıktan sonra, şifresini çözmek için daha önce oluşturduğunuz anahtarı kullanın.

Aşağıdaki örnekte, kriptografik olarak güvenli bir anahtar oluşturulur ve GrabzIt'e gönderilir, bu daha sonra yakalamayı şifrelemek için kullanılır. Bu aynı şifreleme anahtarı daha sonra sonucun şifresini çözmek için kullanılır.

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);

Aşağıdaki örnekte, kriptografik olarak güvenli bir anahtar oluşturulur ve GrabzIt'e gönderilir, bu daha sonra yakalamayı şifrelemek için kullanılır. Bu aynı şifreleme anahtarı daha sonra sonucun şifresini çözmek için kullanılır.

Java 6, 7 ve 8 ile şifrelenmiş görüntüleri kullanmak için lütfen Java Şifreleme Uzantısı (JCE) Sınırsız Güç Yargı Politikası Dosyalarını yükleyin. into Java kurulum klasörlerinin tüm / jre / lib / security / klasörleri.

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);

Aşağıdaki örnekte, kriptografik olarak güvenli bir anahtar otomatik olarak oluşturulur ve GrabzIt'e gönderilir, bu daha sonra yakalamayı şifrelemek için kullanılır. Bu aynı şifreleme anahtarı, daha sonra geri arama yönteminde okunabilen DataURI yöntemine doğru olarak geçilerek sonucun şifresini otomatik olarak çözmek için kullanılır.

<html>
<head>
<script src="https://cdn.jsdelivr.net/npm/@grabzit/js@3.4.8/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>

Aşağıdaki örnekte, kriptografik olarak güvenli bir anahtar oluşturulur ve GrabzIt'e gönderilir, bu daha sonra yakalamayı şifrelemek için kullanılır. Bu aynı şifreleme anahtarı daha sonra sonucun şifresini çözmek için kullanılır.

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);
}); 	

Ne yazık ki Perl, AES şifrelemesinin yerel olarak şifresini çözemez ve harici çalıştırılabilir ya da C derlemesi gerektirir. Bu nedenle, bu işlevi Perl API'mize eklemedik, bunun yerine aşağıdaki kılavuzu kullanarak bu işlevselliği kendiniz ekleyebilirsiniz.

$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();

Aşağıdaki örnekte, kriptografik olarak güvenli bir anahtar oluşturulur ve GrabzIt'e gönderilir, bu daha sonra yakalamayı şifrelemek için kullanılır. Bu aynı şifreleme anahtarı daha sonra sonucun şifresini çözmek için kullanılır.

$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);

Aşağıdaki örnekte, kriptografik olarak güvenli bir anahtar oluşturulur ve GrabzIt'e gönderilir, bu daha sonra yakalamayı şifrelemek için kullanılır. Bu aynı şifreleme anahtarı daha sonra sonucun şifresini çözmek için kullanılır.

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)

Aşağıdaki örnekte, kriptografik olarak güvenli bir anahtar oluşturulur ve GrabzIt'e gönderilir, bu daha sonra yakalamayı şifrelemek için kullanılır. Bu aynı şifreleme anahtarı daha sonra sonucun şifresini çözmek için kullanılır.

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'ın yakalama şifrelemesi nasıl çalışır?

Bu kılavuz çok tekniktir ve geliştiricilerin şifrelememizin nasıl çalıştığını anlamalarına yardımcı olmayı amaçlar. Dil, Open SSL gibi üçüncü taraf araçların tamamlanmasını veya kurulmasını gerektirmeyen açık kaynaklı bir Perl paketine sahip olmadığından, Perl geliştiricileri için özel olarak kullanılmalıdır.

Şifreli yakalamalar, 256 bit Gelişmiş Şifreleme Standardı (AES) şifrelemesi kullanır. Ayrıca, bir Şifreleme Bloğu Zincirleme (CBC) bloğu şifreleme modu kullanır.

GrabzIt'ın bir yakalamayı şifrelemesi için, uzun süre boyunca 64 karakterlerinin seçenek nesnesine geçirilmesi gereken bir temel 44 şifreleme anahtarı. Bu şifreleme anahtarını oluşturmak için, 32 rasgele şifreli olarak güvenli baytları seçmelisiniz. Bunlar daha sonra 64 tabanına kodlanmalıdır. Kriptografik olarak güvenli baytlar olduğu için tahmin etmek zor olacak ve bu nedenle kırılması daha zor olacaktır.

GrabzIt bir şifreleme anahtarına sahip bir yakalama isteği aldığında, yakalama şifrelenir ve başlangıç ​​vektörü (IV) dosyanın başına eklenir. Bu IV 16 bayt uzunluğunda ve şifre çözmeden önce dosyanın önünden kaldırılması gerekiyor. IV şifre çözmeyi etkinleştirmek için AES algoritmasına da geçirilmelidir. Bir yakalama şifreli olduğunda dosyaya dolgu eklenmez, bu yüzden şifre çözme işleminin devre dışı bırakılması gerekir.

Mevcut müşteri API'lerimizden birinde veya tamamen yeni bir dil için bir iyileştirme oluşturduysanız, bunu toplulukla paylaşabilirsiniz. github.