malesef o şekilde de denedim veriler POST EDİLİYOR fakat işlemleri yapmıyor
hatta verileri
print_r($_POST);
/gelen değerleri burda yakalıyorum ama burdan aşağısındaki işlemleri yapmıyor
en request üstüne gelen post değerini
request e diye atamıyor ve işlem yapmıyor anlamış değilim.
aynı js dosyası içerisinde
toplu silme işlemi yaptırıyorum yine bu mantıkla o sorunsuz çalıştırıyor
update işlemine gelince kalıyor öyle
$request = isset($_POST['Uonayisset']);
if($request == 'Uonay' && $_SESSION["log"] == "true" ){
if(roleControl() or SUPERADMINROLE() ) {
deneye deneye kendim halletim arkadaşlar illa birilerine lazım olur kalsın burda :))
var favoriSil = {
'add': function(favID) {
$('.favoriSil').click(function() {
$(this).addClass('loading')
});
$.ajax({
url:'/Favori/Sil/Ok/',
type: 'post',
data: {'favID': favID},
// dataType: 'json',
success: function(data) {
$('#Result').html(data);
}
});
},
'remove': function() {
}
}
ben bi şekilde yaptım fakat bu sefer de
inputta gelen veriyi yanlış gösteriyor.
<input type="hidden" name="favid" value="<?php echo $row["id"]?>">
foreach içinde bu input her sayfada 12 sıralama mevcut value1-2-3-4-5 d,ye rasgele listeleniyor
ama bu gidip o sayfanın ilk id si olan atıyorum 5 alıyor bütün ürünlerde her post işleminde diğerlerini sallamıyor bile.
oda muhtelemen form classı sürekli aynı olduğu için oda en baştakini alıyor haliyle.
evet isimler değişebilir en güzeli ipyi ordan aratabilirsin sql işlemleri ile yük oluşturmaz listede var ise
surdan yola çık
RewriteRule ^urunler/([0-9]+)/([0-9a-zA-Z-_]+)/$ urun-detay.php?id=$1&adi=$2 [L,QSA]
// 0-9 olan sadece rakam alır yani id olabilir
//0-9a-zA-Z-_ burasıda hem rakam hem yazi alabilir yani başlık
// sonrasına bişliler eklemek istiyorsaun &kate=$3 eklersin url sonuna $ biten ilk alanada / artık ne istiyosan onu eklersin
söyle bişi yapsak sanki biraz daha iyi olur
fonksiyon yardımı ile temiz botları tespit edip direk izin vererek sql işlemleriyle uğraştırmayalım
ip takibi ile de uğraşmayız.
public static function BotControl(){
$list = [
"Google"=>"Googlebot"
];
$regexp = "/". implode("|", $list)."/";
$agent = $_SERVER['HTTP_USER_AGENT'];
if(preg_match($regexp, $agent,$matches)) {
$bot = array_search($matches[0], $list);
return $bot;
}else{
return false;
}
}
daha iyi olur gibime geldi sanki ufak yüklerden kurtulmul oluruz
valla şahsen belirtilen dosya uzantılarına girmeye çalışanlar banlansın :)
sanane adamın admin yoludan veya
detay/haber ise detay.php=baslik shadabs
niye elle oraları kurcalamayı deniyorsunki :D
ben genel de inj ve xss için deneme bulunanları kısmen önlemek için
url tipime göre
id ve başlığı şifreleyip fonksiyona gönderiyorum ordan şifreyi çözüp veritabanında varmı diye
kontrol ettiriyorum eğer varsa zaten sayfa açılıyor
yoksa 404 e atıyorum direk
bu tarafından ban atmak istemiyorum çünkü sağlayıcı sorunlarından dolayı
sql de anlık bir okuma olmaz ise yok gibi görür adam normal url bazında bile girse
lamer denemesi diye ban atabilir :)
sunucuya güveniyorsam tabi onada ban atıyorum :)
detay.php ler düz çalışmadığı için haliyle hata verebilir
onlar içinde direk get yoksa diye veya boşşa gibi sorgular ile işlem yaptırıyorum
ama ordan %100 atıyorum siteden çünkü ana dizinde hiçbir detay yolum olmaz benim
biraz karışık çalışmayı seviyorum :)
site üzerindeki formlarda zaten recaptcha v3 kullanıyorum ona ekstra kendi yazdığım
token sınıfını kullanıyorum ne olur ne olmaz diye google amca bizden iyidir :)
tokenleride post ile atmıyorum oluşan token ona göre session a girer incele kısmından değiştirmeye çalışsa bile
token hatasını her türlü alır. aynı şekilde token ve token adıda
işlem sonrasında ve sayfa değiştiği anda bu sessionları boşaltıyorum.
sabit olan sayfalar atıyorum iletisim.php gibi sayfalara inj deneyenlere direk ban atıyorum
ne arıyorsun orda öyle şeylerle demi :)
lamer her yerde var malesef :))
zaten gerekli data oluştukça hergün büyür ve genişler
uzun vadede bu botların %80 i siteye zarar veremez hale gelir
burda biraz da bu botların tarama esnasında daha çok nelere baktığınıda bilmek lazım
sadece admin yolları ilk akla gelen çözüm de olablir ..
elindeki datayı da bizle paylaşabilirmisin :)
muhtemelen sen yapmışsındırda
diğer arkadşlar da yapsın diye
durum diye bi sütün ekleyin bence
0 ve 1 girilebilen
eğer 0 ise siteye girebilir
1 ise giremez olarak kodları düzenlerseniz daha iyi olur
aslına bakarsan temiz botları whitelist olşturup ordan çekip uğraşmamak lazımda
bunların sürekli ipleri değişiyordur
ki google sürekli kendi botlarını kullanıyormu yoksa sadece istatistik kovalamak için kendi alt botları varmı vb şeyler olabilir.
htaccess de yaptığın iş gerçekten mantıklı özellikle nefret ettiğim wordpress sistemini kullananlar için alternatif bir yöntem. :)
yazmaktan çok bazen düşünmek en büyük yazılımdır :)
tebrikler @qplot
dosya hostingde varmı diye önce kontrol ettir foreach içinde is_file ile
dosya varsa sildir yoksa işlem atlattır.
arada hata çıkmasınıda önlemiş olursun
$query = $db->prepare("SELECT * FROM dosyalar");
$query->execute(array());
$dosyalar = $query->fetchALL(PDO::FETCH_ASSOC);
foreach($dosyalar as $dosya){
if(is_file("dosyayolu/".$dosya["sutunadi"])){
unlink("dosyayolu".$dosya['sutunadi']);
}
}
@ işareti koymaktan kurtulursun
ilerde php 8 e geçersen hata almazsın en azından.