Konuyu Oyla:
  • Derecelendirme: 5/5 - 1 oy
  • 1
  • 2
  • 3
  • 4
  • 5
MySQL json sunucu örneği
#1
Merhaba arkadaşlar, mysql için aşağıdaki şekilde basit bir json sunucu kodu yazdım, Delphi, Lazarus, Php ile denemelerimde herhangi bir sorunla karşılaşmadım, gayet güzel istek yapıp sonuçları alabiliyorum. Bunu delphi ile yazdığım projemde Rest gibi kullanmayı düşünüyorum. Sizce uzaktan erişimlerde herhangi bir sorun çıkartırmı? 
Aslında bu iş için synapse ile bi server yazmıştım fakat müşterimde bazen sorun oluşuyor server yanıt vermez duruma düşüyor, sebebinide bir türlü çözemedim bende bu şekilde basit bir kodla (server yazmakla uğraşmamak için) işi çözebilirmiyim diye düşündüm.

<?php
//error_reporting(E_ALL);
header('Access-Control-Allow-Origin: *');
//date_default_timezone_set('Europe/Istanbul');
header('Content-Type: application/json; charset=utf-8');
function isql($veri) { 
$ver = isset($_REQUEST[$veri]) ? $_REQUEST[$veri] : '';
return $ver; 
}
include("db_fdb.php");
$sid   = isql('sid');
//$tur   = isql('tur');
$name  = isql('name');
$sorgu = base64_decode(isql('sorgu'));
$wer   = base64_decode(isql('wer'));
//echo $wer;
$vt = new vt(); // vt olustur
$Fields = $vt->tablofield("SELECT ".$sorgu." FROM ".$name." ".str_replace(chr(92),'',$wer)); // \->''
$Recs   = $vt->tablo     ("SELECT ".$sorgu." FROM ".$name." ".str_replace(chr(92),'',$wer)); // \->''

$json['Err'] = '0';
$json = json_encode ( $json );

$json = json_decode ( $json );
$json->Msg = "Done";

$json->Fields = $Fields;
$json->Recs   = $Recs;

echo json_encode ( $json );
?>
WWW
Cevapla
#2
Merhaba,
%100 sorun yaşamazsınız diyemem. SQL Injection ile bir şeyler yapılabilir mi diye düşünüyorum ama 2 güne yakın süredir uyumadığım için tam olarak neyin ne olduğunu idrak edemiyorum.
Sizden ricam bir test ortamı oluşturabilir misiniz? Pentest ile bakalım bir şey çıkacak mı Smile
İyi çalışmalar.
Yazılım Topluluğumuz -> Tıklayın
Kişisel Tanıtım Sitem -> Tıklayın
20 y/o, sadece öğrenmeye odaklanmış, insancık..
WWW
Cevapla
#3
SQL injection ile yapılabilir şu durumda, zira sıfır güvenlik var, benim merak ettiğim bu sistem uzun süre çalışırmı? yaptığım testlerde şu tip bir sorun yaşadım, yerel ağda sorunsuz kullanıyorum, 3-4 kullanıcı girip istek yapıp sorunsuz alıyor, hatta synapse ile yaptığım serverden çok daha hızlı sonuç getiriyor, bu kodu APPSERV kurarak yazdım, sonra portu modemden açarak uzak bağlantıda sağladım, fakat şu sorun oluştu, uzak bağlantıdan bağlandığımda bir süre sonra sonuç dönmüyor. birkaç istek yapınca delphi den sonuç alamıyorum, fakat yerel ağda tarayıcı üzerinden çalışmaya devam ediyor.
WWW
Cevapla
#4
Ben güvenlik anlamında bakmıştım olaya. Diğer anlamda dosya istekler doğrultusunda çalışıyor ve veritabanına bağlanıyor. APPSERV olayında belki timeout durumu oluşmuş olabilir bilemiyorum o sorunu. Bu dosya ile o tip hatalar yaşamanız güç. PHP, dosya çalıştırıldığı zaman çalışır. Bu sebeple timeout gibi bir duruma düşmeniz için ya veritabanına erişim sorunu olmalı ya da sunucunun çökmesi lazım.

Kısaca sorun yaşamanız çok güç. Tabi birde MySQL Connection limitleri mevcut. Belirli sayıdan sonra istekleri kabul etmeyebiliyor. Onu da göz önünde bulundurmak lazım.
https://www.percona.com/blog/2013/11/28/...nnections/ bu çözümü uygularsanız herhalde, benim gördüğüm kadarı ile bir sorun oluşmaz.
Güvenlik dışında.
İyi çalışmalar.
Yazılım Topluluğumuz -> Tıklayın
Kişisel Tanıtım Sitem -> Tıklayın
20 y/o, sadece öğrenmeye odaklanmış, insancık..
WWW
Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  Mysql DB Hatası powerghost 1 103 09-07-2020, Saat: 09:37
Son Yorum: wiseman
  MYSQL Tunning powerghost 8 484 16-06-2020, Saat: 14:12
Son Yorum: wiseman
  MySQL 8.0 Windows x86 (32Bit) Sürümü Download hi_selamlar 9 1.471 10-12-2019, Saat: 17:43
Son Yorum: uparlayan
  MySQL de Aynı tabloda ki 2 farklı alanı kıyaslayan sorgu vkamadan 4 1.023 23-10-2019, Saat: 18:23
Son Yorum: vkamadan
  [ÇÖZÜLDÜ] SQLite'dan MySQL'e Aktarma ? Mr.Developer 3 1.178 22-07-2019, Saat: 20:31
Son Yorum: Mr.Developer



Konuyu Okuyanlar: 1 Ziyaretçi