Kullanıcıların kendi stil ekleyelim için kötü bir fikir mi?

4 Cevap php

Ben php de yeni ve ben bu anlamaya çalışıyorum kötü bir fikir ya da bir güvenlik riskidir.

Ben bir kullanıcıya sağladığı verilerin bir tablo var, bu yükler varsayılan bir stil var, ama kullanıcının kendi dahil etmek istiyorsa, ben o yüzden sadece yerine kendi biçembente işaret edebilir yaptık:

http://www.mysite.com/info.php?css=http://www.someothersite.com/mystylesheet.css

Ben css dosyasında kapatma tarzı etiketleri ve javascript ekleyerek denedim, ama DOM sadece işlemek mümkün olmadığını CSS gibi yüklemek görünüyor.

Ben herhangi bir başka site stil ekleyerek bu yöntemi izin görmedim, bu nedenle, bu iyi bir fikir ya da kötü bir fikir mi? Ben komut dosyasını yüklemek ve javascript kullanılan anahtar kelimeler aramak olabileceğini düşünüyordum, ama benim test ile, ben bunu yapmak gerekir emin değilim.


Güncelleme: Ben aşağıdaki gibi CSS ekleyerek kulüpler:

<link href="<?php echo (isset($_GET['css'])) ? $_GET['css'] : 'default.css'; ?>" rel="stylesheet" type="text/css" />

4 Cevap

Bu yüzden uzun stil kendi hesabı için kullanılan ve hiç kimsenin olduğu gibi, o zaman ben onlara bunu izin verirdim. Ancak, için kullanılan olabilir, çünkü birisi (bunlar ikis olmasaydı) Ben stil değiştirmek için kullanıcının şifresini gerektirir oturuma kaçırmak. Ben de yerel olarak saklanır onu zorlayacaktır.

Tüm korsanı yapmak gerek bir şifre olmadan:

#selector:before {
  content: expression(getCookie('phpsessid'));
}

Eğer GetCookie adında bir işlevi yoksa Açıkçası o zaman daha fazla ayak işi yapmak gerekir, ama onları çerez verileri almak için hala çok kolay. Bu özel bir stil şifre koruma neden olan essential.

Eğer kullanıcı başına bir alan içerir ve $_GET['css'] rotayı kullanmak istemiyorsanız, o zaman bir rota ile kendi sayfasına harici bir sitede (MySpace demek) bir kullanıcıyı yönlendirmek için önemsiz olacağını unutmayın Bir kaçırma saldırı için zararlı bir CSS dosyası. Yapman bile parola korumalı olmalıdır CSS dosyasının değiştirilmesini korur hiçbir kimlik doğrulama, varsa, o yazılım gerçekten çok, çok savunmasızdır.

XSS ve muhtemelen Clickjacking CSS ile yapılabilir görünür. Kesinlikle CSS URL CSRF saldırısı ile ayarlanamaz dikkatli olmalıdır.

Sunucu orijinal CSS dosyasını yüklemek için istekte ise, o zaman o giden (ya da belki de yerel) bağlantısı hakkında endişe olmak istiyorum mgiht. Istemci yapıyor ise, o zaman (neyse URL yeniden yazma tarafından oturumlar artık popüler) URL bilgi sızdıran endişe isteyebilirsiniz.

Evet.

Bu kötü bir fikirdir.

Başkaları ne tam olarak doğru olduğunu söyledi ama çok önemli bir ek puan, css güncellenmesi kullanıcı yanında hiç kimse kendi css hit eğer o kullanıcı kendi sayfasını görüntüleyen kullanıcının bağlamında istedikleri javascript yürütebilir olmasıdır. Burada en kötü durum senaryosu kullanıcı olmanın zararlı xss kendi sayfasını günceller, siz (yönetici olarak giriş) kendi sayfasını görüntülemek, kullanıcı şifrenizi çaldı ve sizin gibi günlükleri ve sitenin devraldı.

Sitenizde bu gibi saklanan cross-site scripting sahip diğer güvenlik sorunları myspace samy solucan gibi bir xss solucan yol açabilecek ne bağlı.

İşte css tabanlı xss bazı varyasyonları hakkında iyi bir bağlantı, http://www.thespanner.co.uk/2007/11/26/ultimate-xss-css-injection/

Bu nasıl kullanıldığına bağlıdır. Bir kullanıcı başkasının stil kullanarak sitenizi görmek için mümkün ise, o zaman suistimal için kendinizi kurma konum.