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 GDPR gibi yasaların çağında kullanıcının bilgilerini korumak her zamankinden daha önemli hale geldi. Bir yakalama alındığında, indirilebilmesini sağlamak için sunucularımızda kısa bir süre için önbelleğe alınır. Sunucularımız güvenlidir ve bir kullanıcının yakalamalarını izinsiz olarak incelemeyiz. Bu, kişisel bilgilerin işlendiği bazı senaryolarda yeterli koruma değildir.

İlk potansiyel iyileştirme, önbellek uzunluğunu sıfır dakikaya değiştirerek yakalamaları artık önbelleğe almamaktır. hesap sayfası. Ancak bunun, yakalamanın çok uzun bir süre indirilemeyeceği ve oluşturulduktan hemen sonra indirilmesi gerektiği anlamına geleceğini unutmayın.

Bir başka olası güvenlik endişesi de hassas verilerin bize gönderilmesinin fiili sürecidir. Bu verileri güvence altına almak için öncelikle şunları yapmalısınız: SSL'yi etkinleştir, daha sonra veriler elimize geçtikten ve oldukça hızlı bir şekilde işlendikten sonra, herhangi bir güvenlik ihlali olmadığından emin olmak için veriler sistemimizden otomatik olarak silinecektir.

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

Ancak hastane kayıtları vb. gibi çok hassas bilgileri yakalıyorsanız ve ekstra düzeyde koruma istiyorsanız, elde edilen yakalamaları kendileri şifreleyebilirsiniz. Bunu yapmak için her istekte bir şifreleme anahtarı belirlersiniz, bu anahtarlar GrabzIt tarafından saklanmaz. Bu anahtar, bilgileri koruyan yakalamayı şifrelemek için kullanılır. Anahtarı saklamadığımız için şifrelenmiş 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. 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. Aynı şifreleme anahtarı daha sonra sonucun şifresini çözmek için kullanılır.

Java 6, 7 ve 8 ile şifrelenmiş yakalamaları 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. Aynı şifreleme anahtarı daha sonra DataURI yöntemine doğru iletilerek sonucun şifresini otomatik olarak çözmek için kullanılır ve bu daha sonra geri çağırma yönteminde okunabilir.

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

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. 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 şifresini yerel olarak çözemez ve harici yürütülebilir dosyalar veya C derlemesi gerektirir. Bu nedenle bu işlevselliği 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. 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. 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. 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'in yakalama şifrelemesi nasıl çalışır?

Bu kılavuz oldukça tekniktir ve geliştiricilerin şifrelememizin nasıl çalıştığını anlamalarına yardımcı olmayı amaçlamaktadır. 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ştiricilerinin özellikle işine yarayacaktır.

Şifreli yakalamalarda 256 bit Gelişmiş Şifreleme Standardı (AES) şifrelemesi kullanılır. Ayrıca Şifre Blok Zincirleme (CBC) blok şifreleme çalışma modunu kullanır.

GrabzIt'in bir yakalamayı şifrelemesi için, 64 karakter uzunluğunda bir temel 44 şifreleme anahtarının seçenek nesnesine iletilmesi gerekir. Bu şifreleme anahtarını oluşturmak için 32 rastgele kriptografik olarak güvenli bayt seçmelisiniz. Bunlar daha sonra 64 tabanına kodlanmalıdır. Kriptografik olarak güvenli baytlar oldukları için tahmin edilmeleri ve dolayısıyla kırılmaları daha zor olacaktır.

GrabzIt, şifreleme anahtarıyla bir yakalama isteği aldığında, yakalama şifrelenir ve başlatma vektörü (IV) dosyanın başına eklenir. Bu IV 16 bayt uzunluğundadır ve şifre çözülmeden önce dosyanın ön kısmından kaldırılması gerekir. Şifre çözmeyi etkinleştirmek için IV'ün AES algoritmasına da aktarılması gerekir. Bir yakalama şifrelendiğinde dosyaya hiçbir dolgu eklenmez, dolayısıyla şifreyi çözerken dolgunun devre dışı bırakılması gerekir.

Mevcut istemci API'lerimizden birinde veya tamamen yeni bir dil için bir iyileştirme oluşturduysanız, bunu aracılığıyla toplulukla paylaşabileceğinizi unutmayın. github.