Seo için yapılan url yapılarında güvenlik açığı olur mu?

" İD OLMADAN SEO URL YAPISI "
Selamlar ;
Seo url yapısı için
seo url şu şekilde olacak.

örnek: Şarkıların güzelleriklieri
http://siteismi.com/sarkilarin-guzellikleri (blog daki bir yazı için)

örnek: Elektrikle çalışan araç (ürün adı)
http://siteismi.com/elektrikle-calisan-arac. (ürün adı)

bütün site url yapısını id olmadan ve tek yapıda nasıl yapabilirin.
slug değerini db kaydedecem.
veri çekerken id yerine slug değerini çekecem.
slug da benzersiz olacak wp de ki gibi.
Sorum şu
1. bu şekilde güvenlik açığı olur mu ?
siteismi. Co/ dan sonraki değeri alıp sorgulacam. Biraz riskli gibi.
2. performans açısında kayıplar olur mu ?

3. Sizin önerileriiz ve eleştirileriniz.

E
0 kişi takip ediyor.
Misafir olarak yayınla
3
3 CEVAP

1- girdiyi doğru şekilde validasyona sokarsan güvenlik açığı oluşturmaz.
2- performans kaybı ancak çok çok mysql sınırlarını bile zorlayacak kadar veri varken ve yine çok fazla kontrol edilecek tür varken (sayfa, ürün, makale, kategori, haber ...)
olur. Sistemin nasıl yazıldığı, çalıştığı sunucunun donanımı ve bir çok etmen daha var performansı etkileyen. Bu durum kendi başına çok büyük bir kayıp yaşatmaz.

3. Önerim router classlarsan birisini kullanın.
Routeları öncelik sırasına göre oluşturun.
Bir içerik girilirken diğer kategorilerle çakışma olmasını engellemek için tüm tablolardan sefurl’leri alan bir view oluşturup ekleme sırasında hatta başlık girilirken AJAX ile anlık olarak sefurl kontrolü yapıp ürün için girilmiş bir başlığın aynısının blog için girilmesini önleyin.

H

wp de de öyle anlık kontrol edip varsa aynı yapısı yazdırmıyor.

Eyüp Başböyük 6 yıl

Ama çok tablo olursa her tabloyu tek tek kontro etmesl lazım. urunler blog safyalar birtane slug değerğnin hangi yapıya ait olduğunu bulmak için 3 tablodan sorgu yapacak..

Eyüp Başböyük 6 yıl

bu kurumsal firma sitesi olacağı için maksimum 1000 sayfayı geçmez.

Eyüp Başböyük 6 yıl

Eyüp Başböyük Normal çünkü aynı başlıklar yani aynı slug oluşursa router bunu hangi mapte değerlendirip, hangisi fonksiyonu çalıştıracağını çözemez. Bunu böyle de yapamaz mısın? Yaparsın htaccess’le ama sisteme ölüm olur, zulüm olur. Ve öncelik sırası kazanır. Önceden a-urunu diye bir ürün girmişsindir şimdi aynı slugla blog yazısı girersen ve blogların htaccess kuralı ürünlerden önce yazıldıysa girdiğin o ürünü artık kimse görmeyecek çünkü önce blog kuralı eşleşip çalışacak. Router’da bunu önceliğe göre de yapamazsınız eşleştirme aşamasında exception fırlatır

Hüseyin Yarol 6 yıl

Hüseyin Yarol sql de benzersiz yapsam

Eyüp Başböyük 6 yıl

Eyüp Başböyük yanlış düşünüyorsun. Tabloları tek tek kontrol ettirmeyeceksin. Bak orada ‘view’ oluştur dedim. Veri tabanında view oluşturacaksın sadece bu view’a bir where sorgusu atıp kayıt var mı yok mu bakacaksın. Her tablo için if else var mı yok mu sorgu olmaz

Hüseyin Yarol 6 yıl

anldım şimdi. Teşekkür edrerim

Eyüp Başböyük 6 yıl

tüm seo url linklerinin bulunduğu bir tablo şeklinde view

Eyüp Başböyük 6 yıl

o zaman iki sorguda iş çözülür. 1. orgu url hangi yapıya adit İD si ne 2. gerekli veriyi getir.

Eyüp Başböyük 6 yıl

Eyüp Başböyük sql de benzersiz yapsan sadece kendi tablosu içinde geçerli olur, diğer tabloda olması bizim asıl sorununuz zaten yoksa tablo içinde bu alanlar zaten benzersiz olmak zorunda onu tartışmaya gerek yok. Öbür türlü aynı adda 2 ürün girilmesi sorunu çıkar bu sefer son girilen ürün gözükür. Tablo içi de tüm tablolarda da bunun önlemini alacaksın. Sistem de bir kez kullanılan slug başka yere girilmeyecek

Hüseyin Yarol 6 yıl

Eyüp yapabileceğin çok fazla seçenek var slug hangi tablo da istersen arat istersen view alırken tablo adını da bir sütuna ata sql sorgusu içinde sonra view’a sorgu yaparken onu da çek

Hüseyin Yarol 6 yıl

slug-control adında bir tablo oluştrup id tabloname element_id slug şekilden tek tabloda tutacam tüm seo url verilerin. hangi verinin hangi tabloda hangi id li elemente ait olduunuda tutacam. o zaman diğer tablolarda slug verisi tutmaya gerek yok . slug-control kontrol tablosunda hederi alıp yola devam edecem. en güzelü bu gibi. tabi kayıt ve görüntüleme iki işlem olacak. ama o kadar olsun.

Eyüp Başböyük 6 yıl

Eyüp Başböyük önermem. Tablo oluşturmayın ekstradan. Bu gereksiz bir işlem. View oluşturun

Hüseyin Yarol 6 yıl

Eyüp Başböyük siz SQL VIEW’ı biliyor musunuz?

Hüseyin Yarol 6 yıl

Hüseyin Yarol Hayır

Eyüp Başböyük 6 yıl

Eyüp Başböyük bir araştırın zor bir işlem değil. Eğer sizin dediğiniz gibi olursa silme güncelleme ekleme kayda dair veriyi çekme her şey uğraştırıcı olur. Benim dediğim gibi yaparsanız silme güncelleme vs için ekstra bir tabloya gitmeniz gerekmez.

Hüseyin Yarol 6 yıl

Eyüp Başböyük Phpmyadmin view kullanımı yazın, SQL olarakta view’ı araştırın. Sonuç bulamazsanız özelden yazın detaylı anlatayım

Hüseyin Yarol 6 yıl

Hüseyin Yarol Çok teşekkür ederim internetten araştırdım sizin dediğiniz daha mantıklı. view de çalışma yapıyorum. Oda kolay biraz daha bakıyorm bloglara.

Eyüp Başböyük 6 yıl

Eyüp Başböyük tablo adı konusunda da tablo adını veren bir sql sabiti vardı diye hatırlıyorum. Onunla yada bir procedure ile view’a sorgu içinde çekebilirsiniz.

Hüseyin Yarol 6 yıl

Eyüp Başböyük Yazacağın SQL bu

com-6ad3ir7rhji0535sgwpe.jpg

Hüseyin Yarol 6 yıl

Eyüp Başböyük Alacağın sonuçta bu

com-3ee7iqq85glkxpoko8r7.jpg

Hüseyin Yarol 6 yıl

Bu sorguyu SQL panelinden kendine göre düzenleyip, çalıştırıp sonucu doğru şekilde aldığında en aşağıda bu fotoğraftaki gibi "Görünüm oluştur" linki göreceksin ona basıyorsun

com-g5uuqmzbgxnmil2xe5dn.jpg

Hüseyin Yarol 6 yıl

bu alanda mevcutta olmayan bir görünüm adını giriyorsun diğer ayarlara dokunmuyorsun. O sana görünüm oluşturup yönlendirecek. Bundan sonra sorgularını oz_slugs tablosuna dayanarak yaparsın. Bu aslında bir tablo gibi çalışır ama tablo değildir. Veri silinmez, eklenmez, düzenlenmez. Sadece yazdığımız sorgunun sonucunu döndürür. Bir veriyi ana tablolardan sildiğinde görünümde otomatik değişir. PHP Versiyonu ve MYSQL sürümü uyumsuz olan sunucularda görünüm sonuçların gözükmemesi gibi sıkıntılar yaşatabilir buna dikkat et. Kolay gelsin..

com-70zb3wgsmn7ab6smgepw.jpg

Hüseyin Yarol 6 yıl