charles browser da ne varsa yakalar,
csrf token pek işe yaracağını sanmıyorum, şundan ötürü charles da breakpoint vardır sen csrf token li post işlemini daha sunucuya varmaadan charles araya girip düzenleme imkanı sağlıyor,
charles normalde ssl bağlantıları browser a kendi sertifakasını yükleyerek çözebiliyor,
bence en sağlıklı çözüm sunucu ve client arasına veri alışverişini de kendi şifrelemeniz ile encode etmek
sonuçta bu bir uygulama uygulama içinden sunucuya gönderilecek verileri encrpyt edersiniz, daha sonra da sunucu tarafında bu verileri decrypt ettiken sonra işlemi tamamlarsanız, charles ile aradaki iletişimi çözseler bile görecekleri kargacık burgacık şifrelenmiş veriler olacaktır.
bu çözülemez mi tabiki çözülebilir ama her önüne gelen çözemez işin uzmanı tarafından çözülebilir,
işleri çözecek kişi için bir tık daha zorlaştırmak isterseniz de, devamlı değişken encrpyt yöntemi kullanabilirsiniz,
o da şöyle kullanıcı app inize login olduğunda kullanıcıya özel bir encrpy key berlilerseniz bunu da sunucu tarafında tutarsınız o kullanıcının işlemlerini o key ile çözersiniz, bu keyler her login de veya yaarım saatte bir veya 5 işlemde bir değişcek şekilde ayarlarsınız daha sıkı bir sisteminiz,
diğer bir yöntem veya ek bir yöntem olarak da ssl hsts açmak olur, hsts de kullanıcı çözdüğü verileri düzgün göremez fakat bunun da uzman kullanıcılar için charles tarafında çözümü var.
sonuç olarak %100 bir çözüm çok zor fakat bunun minumum seviyeye düşürmek amacınız olabilir, herşeyi yaptıktan sonra yapılan hileyi de algılayacak bir sistem gelirşirirseniz de geriye kalan 3-5 taneyi ayıklamak daha güzel olabilir,
kolay gelsin



ek sonradan aklıma csrf ile alakalı daha kolay bir şekilde çözüm yöntemi geldi
şimdi siz bir tane bayımsız bir csrf gönderip kontrol sağlıyorsunuz,
ek bir csrf daha oluşturup bunu bağımlı şekilde yapabilirsiniz.,
şöyleki mesela kullanıcı userid ve bakiye bilgileri post ediyor size bu bilgileri kullarake client tarafında bir hashlenmiş olarak gönderirirsiniz tıpku bir csrf gibi
örnek cient tarafın md5(userid.bakiye.secretkey)
hem hashli hemde salt düz veri şekilde userid ve bakiye gönderildiği için sunucu tarafından tekrar hashleyip iki hash in birbirine eşit olup olmadığını da kontrol edebilirsiniz.
if( gelenhash == md5($post['userid'].$post['bakiye'].secretkey) )