Arama butonu
Bu konudaki kullanıcılar: 1 misafir
9
Cevap
3840
Tıklama
0
Öne Çıkarma
XML'i Veritabanı olarak kullanmak
T
14 yıl
Binbaşı
Konu Sahibi

Arkadaşlar birkaç ay önce içinde yer aldığım dahası yer almak demiyelim de, bir rica üzerine ufak bir modülünü kodladığım bir projeden sonra bu olay aklıma takıldı. Proje için en başında sqlite v3 kullanmıştım. sqlite tam olarak nasıl veritabanıdır bilmeyenler için kısa bir açıklama yapayım. Sqlite, mysql tarzı bir veritabanı sistemidir fakat farkı bir sunucuya bağlı olarak çalışmak yerine sizin kafanıza göre bir uzantı ile oluşturduğunuz (ben yaptım sorun çıkarmadı örneğin db.db, db.dat vs) bir dosyaya kendi sql kodları ile bir metin dosyasına veri eklermiş gibi veri eklemesi. Neyse konumuz sqlite değil. Sadece bağlantıyı kurmak istedim.

Yazdığımız script için sqlite eklentisi gerektiğinden ve biz FreeBSD üzerinde bunu bir türlü halledemediğmizden yine arkadaşın ricası üzerine aynı modülü bir XML belgesini veritabanı niyetine kullanarak yazdım. Intranet üzeirnde yer alacağından güvenlik konusunu dikkate almadım, hatta dürüst olmak gerekirse güvenlik aklıma bile gelmedi. Fakat sqlite'in basitliğinden esinlenerek, XML belgelerinin çok iyi performans sergileyebilecek ve kullanımı çok basit bir veritabanı olarak düşündüm. Ancak sonrasında kafama şöyle bir soru takıldı. XML belgesini PHP için çok rahatlıkla veritabanı niyetine kullanabiliriz. Tabiki kullanıcı sistemi bulunan bir sistem için her halükarda hacklenmeye davetiye çıkartan bir sistem olurdu. Fakat sitede zaten açık açık yazan içeriğin barındırılması için biçilmiş kaftan diye düşündüm. İşte sorun tam burda başlıyor. Her ne kadar içeriğin XML belgesi açılıp görülmesi sorun değilsede, XML belgelerine müdahale etmekde sadece PHP'nin becerisi söz konusu değil. JavaScript'te bu konu da becerikli. Sonuç olarak, sitemizi PHP kullanarak XML veritabanına bağlı bir biçimde de oluştursak, adres çubuğuna girilen bir javascript kodu ile rahatlıkla XML belgesinin içeriği değiştirilebilir. Bu durum için düşünebildiğim tek çözüm XML belgesinin chmod değerlerinin 666 olması. Olması da, bu belgeye veri eklemek istediğimizde belgenin chmod 777 olması gerekecek. Bu da bir engel teşkil edio. Yanılmıosam bu durumda bash kullanmak lazım ki bu da hiç içime sinmiyor. Bu konuda bir önerisi ya da bilgisi olan varsa ve paylaşırsa çok sevinirim. şimdiden teşekkürler.



U
14 yıl
Binbaşı

Javascript senin sunucunda barındırdığın XML dosyası üzerinde değişiklik yapamaz. Sunucu disk sistemine erişemez, rahat ol. Dosya izinleri ile de bir alakası yok.


Bu mesaja 1 cevap geldi.
T
14 yıl
Binbaşı
Konu Sahibi

İyi de Javascript'in XML fonksiyonları hangi XML belgesini işleyecek ki??? Yanlış anlama, XML işlemeyi W3Schools üzerinden öğrenmiştim. sonuçta oradaki JavaScript + XML örnekleri için kullanılan XML belgeleri de sunucu üzerinde. Bununla ilgli farklı bir durum mu söz konusu?

Edit :: Özür dileyerek soruyorum. JavaScript'in erişmediği XML belgeleri site dizini içinde yer alanlar mı yoksa işletim sisteminin dosya siteminde /www ya da /wwwroot harici bir yer de yer alanları mı?





< Bu mesaj bu kişi tarafından değiştirildi TradeMark -- 14 Haziran 2010; 14:57:06 >
Bu mesaja 1 cevap geldi.
U
14 yıl
Binbaşı

Şunu söylemeye çalışıyorum: Javascript istemci tarafında çalışan bir dildir. Yani javascript ile yaptığın XML değişikliklerini sadece senin siteni ziyaret eden istemcinin bilgisayarında yaparsın. Yani sunucuda bulunan XML dosyan üzerinde herhangi bir değişiklik yapılamaz Javascript ile. İstemci tarafında manipüle edersin, o yaptığın değişiklikler istemcinin bilgisayarında kalır. Hatta orada da kalmaz, sayfayı değiştirdiği anda gider.
Dolayısıyla XML dosyanın CHMOD ayarları ile uğraşıp korumaya çalışmana gerek yok, javascript oraya zaten müdahale edemez.


Bu mesaja 1 cevap geldi.
T
14 yıl
Binbaşı
Konu Sahibi

Demek istediğini şimdi anladım. Örnek veriyim doğru anlamışmıyım bi bakalım.


Örneğin bir input etiketi için type parametresi password. biz de bunu text yapmak istiyoruz.

 
<!--input-->

<input id="transform_to_text" type="password" value="x" />



 
//adres çubuğuna girilen javascript kodu

javascript:document.getElementById("transform_to_text").type="text";




bunu yaptığımızda input etiketinin type parametresi text olur fakat sayfa yenilendiğinde yeniden password olarak yüklenir. söylemeye çalıştığın tam olarak bu sanırım? yani hacklediğini düşünen birisinin hacklediğine dair yazacağı herhangi birşey sadece kendi bilgisayarında görünür. o da bir sonraki yenilemeye kadar?


Bu mesaja 1 cevap geldi.
U
14 yıl
Binbaşı

T
14 yıl
Binbaşı
Konu Sahibi

Sonuç olarak herkes tarafından görüntülenebilen içeriğin XML belgesinde saklanmasında güvenlik açısından bi sakınca olmuyo anlaşılan. Çok soru sordum ama


Bu mesaja 1 cevap geldi.
K
14 yıl
Yüzbaşı

quote:

Orijinalden alıntı: TradeMark

Sonuç olarak herkes tarafından görüntülenebilen içeriğin XML belgesinde saklanmasında güvenlik açısından bi sakınca olmuyo anlaşılan. Çok soru sordum ama



1. optimizasyon anlamında bir sıkıntı olabilir. istemci tarafında gereksiz bir io işlemi yapmış olursun.
2. reengenerring e çanak tutmuş olursunuz, ideal şartlarda bir uygulama yazılımının işe ait hiç bir tanımı istemciye aktarılmaz. xml dosyasının bir mark up olduğunu unutmamak lazım. nihayetinde tasarımınıza/modelinize ait bir içeriği başkaları ile paylaşmış olursunuz ya da paylaşmamak için bir çaba (presentation için xml i yeniden düzenlemek gibi) sarf etmeniz gerekir. mesela kullanı bilgilerinin geçici olarak saklandığı bir xml dosyası kolaylıkla kimliklendirme algoritması (username password match, token, otp, 2 factor authentication) hakkında bilgi verir.

bir imkanın uygulama geliştirme platformu tarafından size sunulması bu imkanı her ortamda kullanmanızı gerektirmez.


Bu mesaja 1 cevap geldi.
T
14 yıl
Binbaşı
Konu Sahibi

benim derdim zaten php bana xml'i kullanma şansı verio hemen onu kullanayım değil. gerektiğinde bir mysql sunucusuna bağlı kalmak yerine xml kullanmanın daha mantıklı olduğu yerler oluo. gerek ekonomi açısından gerekse kolaylık açısından. sadece bunun sakıncası var mı merak ettim.


Bu mesaja 1 cevap geldi.
O
14 yıl
Yarbay

@kuduk'un dediği gibi yayınlama kısmında işini görür fakat tamamen database yerine geçemez.

optimizasyon kısmını ise sistemin uygun bir şekilde cache'de tutabilirsin. jquery'ni ajax sınıfında ilgili bir kontrol var mesela.

illede xml tazrı bir şey kullanmak istersen de json tavsiye ederim. tag'lara göre daha az boyut kaplar. tek dosyada tabiki pek önemi yok ama proje büyüdükçe önemi artacaktır.

dolaysıyla extra çaba gerektirecek kadar artısı yok bence



DH Mobil uygulaması ile devam edin. Mobil tarayıcınız ile mümkün olanların yanı sıra, birçok yeni ve faydalı özelliğe erişin. Gizle ve güncelleme çıkana kadar tekrar gösterme.