
Thai: 
มีการโต้เถียงกันเล็กน้อย
ว่าควรเรียกสิ่งนี้ว่าอย่างไร
ผมเรียกมันว่า sequel injection
คำย่อเป็น SQL
ไม่ว่าคุณเรียกว่าอะไรก็ตาม
มันเป็นวิธีที่จะโจมตีเว็บไซต์,
มันไม่ควรจะทำงานได้เลย แต่ยังคงใช้งานได้
Sequel หรือ SQL เป็นภาษาที่
ใช้ติดต่อกับฐานข้อมูล
และมันเป็นอย่างสมเหตุสมผล ...
เหมือนเช่นภาษาอังกฤษจริงๆ เลย
คุณสามารถพูด เช่นว่า
"เลือกจากตารางนี้".
มันไม่ได้เป็นภาษาที่มีความซับซ้อน
ไม่มีวงเล็บปีกกาจำนวนมาก
และเครื่องหมาย ; อะไรแบบนั้น
มันมีได้
แต่คุณก็สามารถพิมพ์คำสั่ง
เป็นภาษาที่คล้ายภาษาอังกฤษได้
และคุณจะได้ผลลัพธ์กลับมาจากฐานข้อมูลของคุณ
และนี้มีมานานหลายปีแล้ว
และนั่นคือทั้งหมดใช้ได้ดีจนเว็บเข้ามา
และตอนนี้ผู้คนที่กำลังมองที่เว็บไซต์และกำลังคิด
"สิ่งเหล่านี้จะต้องมีการเชื่อมไปยังฐานข้อมูล."
เพราะ ย้อนกลับไป เมื่อ Tim Berners-Lee
คิดค้น เวิลด์ไวด์เว็บ (www)

English: 
There's actually been a debate
over how I should pronounce this.
I call it sequel injection.
The acronym is SQL.
Whichever way you call it,
it's a way to attack websites,
that really shouldn't work any more, but still does.
Sequel or SQL is a language in
which you talk to databases,
and it's fairly...
it's fairly like English actually.
You can actually say things like,
"Select from this table."
It's not a complicated language.
There are no great amounts of curly brackets
and semi-colons and things like that.
It can be.
But equally you can pretty much type
commands in near English into it,
and you'll get results back from your database.
And this has existed for years and years and years.
And that was all fine until the Web came along,
and now people are looking at websites and are thinking,
"These, these need to be hooked up to databases."
Because way back, when Tim Berners-Lee
invented the World Wide Web,

Turkish: 
Engellenen kategoriler (hacking)
Ben netice enjeksiyon diyoruz.
kısaltması SQL olduğunu.
Hangisini seçerseniz onu aramak yolu,
o, web sitelerine saldırmak için bir yol var
Bu gerçekten bir daha çalışmaz, ama yine de yapar.
Devamı veya SQL, veritabanlarının konuşmak olduğu bir dildir
ve oldukça var ...
aslında İngilizce gibi oldukça var. Aslında işler gibi diyebiliriz,
Bu tablodan seçin
Bu karmaşık bir dil değil
Böyle kıvırcık parantez ve yarı-iki nokta üst üste ve yapılacaklar hakkında hiçbir büyük miktarda vardır.
Olabilir.
Ama aynı derecede yapabilirsiniz oldukça fazla türü içine İngilizce yakın komutları,
ve veritabanı geri sonuçlar alırsınız.
Ve bu yıl ve yıl ve yıl için var olmuştur.
Web gelene kadar ve bu, tüm para cezası
ve şimdi insanlar web sitelerine bakarak ve düşünme,
Bunlar, bu veritabanları bağladım gerekir
geri dönüş yolu Çünkü, Tim Berners-Lee World Wide Web icat ettiğinde,

Turkish: 
o "Ben isteği belge oldukça fazla olduğum edildi
ve bana geri o belgeyi göndereceğiz. "
Sonunda insanlar dışarı çalıştı
ne gerçekten yapmak istediğim bir dokümanı göndermek oldu
ve farklı şeyler gönderilen ne bağlı olarak geri gelmek zorunda.
Belki bir arama isteği yazabilirsiniz,
 
 
 
 
 
 
 
 
 
 
 
 
 
 

English: 
it was pretty much "I'm gonna request a document
and you're gonna send that document back to me."
Eventually people worked out that
what do you really wanted
to do was send a document
and have different things come
back depending on what you sent.
Maybe you could type in a search request,
and that would go to a database
and pull back something.
That's great, that's brilliant, that's a wonderful invention.
And unfortunately, some programming
languages dealt with this in a sensible way,
and some did not.
And one of the most notable ones
that didn't is a language called PHP.
I'm a PHP coder. It's a very
easy language to write in.
It's a friendly language. I still haven't met any
other language that lets me develop code
at the speed that I am able to.
It's very fault-tolerant,
within reason.
It doesn't always give you the best
results when it does, but, you know,
it's friendly, it's easy to pick up and crucially
you can just write it into a text file, upload
it to a web server (in most of the world),
and it will just work.

Thai: 
มันก็เป็นแบบว่า "ผมจะร้องขอเอกสารหนึ่ง
และคุณกำลังจะส่งเอกสารนี้ที่กลับมาให้ผม"
ในที่สุด ผู้คนก็คิดออกมาว่า
สิ่งที่คุณต้องการทำจริงๆ
แล้วคือส่งเอกสารมา
และมีสิ่งที่แตกต่างกลับมา
ด้วยขึ้นอยู่กับสิ่งที่คุณส่ง
บางที คุณอาจจะพิมพ์ในคำขอค้นหา
และจะไปยังฐานข้อมูล
และดึงบางสิ่งบางอย่างกลับมา
นั่นดีเยี่ยมเลย เป็นสิ่งประดิษฐ์ที่ยอดเยี่ยม
และน่าเสียดาย ที่บางภาษาโปรแกรม
จัดการกับเรื่องนี้ในทางที่เหมาะสม
และบางอันทำได้ไม่ดี
และหนึ่งในภาษาที่มีชื่อเสียงมากที่สุด
ที่ทำได้ไม่ดี เรียกว่า PHP
ผมเป็นโปรแกรมเมอร์ PHP มันเป็น
ภาษาที่ง่ายจะเขียนอย่างมาก
มันเป็นภาษาที่เป็นมิตร ผมยังไม่ได้เจอ
ภาษาอื่น ๆ ที่ช่วยให้ผมพัฒนาโค้ด
ได้เร็วเท่านี้
มันทนมากต่อความผิดพลาด
ภายในเหตุผล
มันไม่ให้ผลแก่คุณที่ดีที่สุดเสมอไป
แต่คุณรู้ว่า มันเป็นมิตร
จึงเป็นเรื่องง่ายที่จะนำมาใช้และใช้ได้ดี
คุณก็สามารถเขียนลงในไฟล์ text แล้วอัปโหลด
ไปยังเว็บเซิร์ฟเวอร์ส่วนใหญ่ทั่วโลก
และมันก็จะทำงาน

Thai: 
คุณสามารถพิมพ์โค้ด PHP และเพียงแค่รัน
ดังนั้นอุปสรรคที่กันไม่ให้เข้าถึงมันนั้นน้อยจริงๆ
ซึ่งในทางหนึ่งมันดีมาก มันทำให้
การเขียนโปรแกรมเว็บสามารถเข้าถึงได้มากขึ้น
Facebook ดั้งเดิมถูกเขียนด้วย PHP
สิ่งต่างๆ มากมายนับไม่ถ้วน แรกเดิม
เขียนด้วย PHP และยังมีอีกมากที่ยังคงอยู่
WordPress ยังคงเป็นเช่นนั้น
ปัญหาคือว่าถ้าคุณไม่ระวัง
มีหลายวิธีที่จะเกิดความผิดพลาดได้
และนี้ไม่ได้เป็นเพียง PHP,
แต่ผมจะใช้มันเป็นตัวอย่าง เช่น
คุณพูดคุยกับฐานข้อมูลโดย
การออกคำสั่งเช่นนี้
SELECT * FROM users
WHERE username =
"tom"
ดีล่ะ!
และฐานข้อมูลจะส่งรายละเอียดที่มันรู้
เกี่ยวกับผู้ใช้ที่เรียกว่า "tom" กลับไปทั้งหมด
ยอดเยี่ยม!
แต่การปัญหาชะงัก เป็น เครื่องหมายคำพูดเหล่านั้น
เพราะถ้าผมไม่ได้ระมัดระวังเกี่ยวกับสิ่งที่ผมส่งแล้ว
เราสามารถทำให้เกิดปัญหาบางอย่าง
สมมติว่า เช่นว่า ผมมีเว็บ
ในรูปแบบว่า ช่วยให้ผมเข้าสู่ระบบและ ผมพิมพ์ "tom" เข้าไป
และมันส่งนั่นและนำ "tom" กลับมา
โอเค?

English: 
You can type in PHP code and have it just run.
So the barrier to entry is really, really low.
Which in one way is brilliant. It makes web
programming much more accessible.
Facebook was originally written in PHP.
Innumerable things have originally been
written in PHP and loads of things still are.
WordPress still is.
The trouble is, that if you're not careful,
there's a lot of ways to go wrong.
And this isn't just PHP,
but I'll use it as a example.
You talk to a database by
issuing a command like this.
SELECT * FROM users
WHERE username equals
"tom"
Great!
And the database will send back all the
details it knows about the user called "tom".
Brilliant!
But the catch is those quotation marks.
Because if I'm not careful about what I send,
then we can cause some problems.
Let's say, for example, that I have a web
form that lets me login and I type in tom,
and it sends that and brings back "tom".
OK?

Turkish: 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

English: 
Now lets say I type in tom with a quote mark in it,
and if you are not careful, what will happen
is the language will send something like this.
SELECT * FROM users WHERE username
equals
"tom" and then I put a quote mark
in, and then it puts a quote mark in.
It fails because the quote marks don't match up.
And the whole thing crashes
and it just sends back an error.
That's mildly annoying,
and a big problem, of course, is putting
in any text that has quote marks.
The catch is you can do
a lot of damage that way.
Because that language
doesn't just have SELECT.
It has INSERT to add new stuff.
It has UPDATE to change stuff.
And it has DELETE to remove stuff.
So if I was to send, say,
a username that was 'tom";',
and then put another
command in there, like,
'delete everything'.
Its not a literal command,
but something like that.
It would work.
So we have a look how that works.

Turkish: 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Thai: 
ตอนนี้สมมุติว่าผมพิมพ์ "tom" เข้าไป ด้วยเครื่องหมายคำพูดในนั้น
และถ้าคุณไม่ระวังจะเกิดอะไรขึ้น
ภาษาจะส่งอะไรเช่นนี้มาให้
SELECT * FROM users WHERE username
=
"tom" จากนั้นผมใส่เครื่องหมายคำพูด
และแล้วมันใส่ เป็น "tom""
มันล้มเหลว เนื่องจากเครื่องหมายคำพูดไม่ตรงกัน
และเกิดความผิดพลาดทั้งหมด
และมันก็ส่งกลับข้อผิดพลาด
นั่นเป็นที่น่ารำคาญเล็กน้อย
และปัญหาใหญ่ แน่นอนล่ะ การวาง
ข้อความใด ๆ ในเครื่องหมายคำพูด
ปัญหาคือ คุณสามารถทำ
ความเสียหายจำนวนมากได้โดยแบบนั้น
เพราะภาษานั้น
ไม่เพียง แค่เลือก SELECT
มันได้ INSERT เพื่อเพิ่มสิ่งใหม่ ๆ
มัน UPDATE เพื่อการเปลี่ยนแปลงสิ่งต่างๆ
และก็มี DELETE เพื่อลบสิ่งต่างๆ
ดังนั้น ถ้าผมจะส่ง
ชื่อผู้ใช้ username ว่าเป็น 'tom";'
แล้วใส่คำสั่งอีก
ในนั้น เช่น ลบทุกอย่าง
'delete everything'
นี่ไม่ได้เป็นคำสั่งที่แท้จริงของมัน
แต่เป็นอะไรเทือกนั้น
มันจะทำงาน
ดังนั้นเราจึงได้ดูว่ามันทำงานได้

English: 
We've got the normal command,
"SELECT * FROM users
WHERE username [mumbles] 'tom'""
Long command there.
But when you put in 'tom',
I'm gonna send that,
and then I'm gonna send this:
DROP ALL DATABASES;
Hit enter, it will get converted
into a plain English command,
in SQL language,
it will get sent,
and database will go
"Well that's exactly what I should do."
It's gonna understand that there's a new command at
the semi-colon and that it should delete everything.
The main way around it is escaping.
When there is dangerous
character, like a quote mark,
you put a slash before it.
And by 'you' I mean you, the
programmer writing this.
You go through, and you
use a function that says,
"Everywhere there is a quote
mark, put this slash before it.
And before you send it to
the database, you do that."
Input comes in from the user,
add some slashes to it to make it safe,

Turkish: 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Thai: 
เราได้มีคำสั่งปกติ
"SELECT * FROM users
WHERE username = TOM";
คำสั่งยาว
แต่เมื่อคุณใส่ TOM"; ลงไป
ผมจะส่งสิ่งนั้น
แล้วผมจะส่งข้อมูลนี้:
DROP ALL DATABASES;
กด Enter มันจะแปลง
เป็นคำสั่งภาษาอังกฤษธรรมดา
ในภาษา SQL,
มันจะได้ถูกส่งไป
และฐานข้อมูลจะไป
"อืม นั่นคือสิ่งที่ผมควรทำ."
มันจะเข้าใจว่ามีคำสั่งใหม่ที่ ;
และนั่น มันควรจะลบทุกอย่าง
วิธีที่สำคัญคือการหลีกเลี่ยง
เมื่อมีตัวอักษรอันตราย
เช่น เครื่องหมายคำพูด
คุณใส่ทับก่อนมัน
และโดย 'คุณ' ผมหมายความว่า
คุณโปรแกรมเมอร์ที่เขียนสิ่งนี้
คุณได้พิจารณาทั้งหมดและคุณ
ใช้ฟังก์ชั่นที่บอกว่า,
"ทุกที่ที่มีเครื่องหมายคำพูด
ให้ใส่ทับก่อนมัน
และก่อนที่จะส่งไปยัง
ฐานข้อมูล คุณทำแบบนั้น."
input เข้ามาจากผู้ใช้
เพิ่มทับเข้าไปเพื่อทำให้มันปลอดภัย

English: 
send it out to the database.
And the database looks at
those slashes and goes,
"Right, every time there's one of
those, this thing that's coming next?
Just treat it as a regular quote mark.
Don't treat it anything special, it's
in the text, just treat it as that."
And if you wanna send an actual
slash, you send two slashes:
the first one to say "Treat the next
one as a real character", and then...
It works, but it's clunky.
And for a while, this kind of "Send
the command in plain English"
was the only way to make things
work in a couple of languages,
including PHP, the most commonly used
web programming language in the world.
To make this worse, the command to add
those slashes was the wonderfully unwieldy:
mySQL (it's the name of the database.)
_real
_escape
_string. And then you
put whatever text you want there.
"escape_string" being what you want it to do,
"mySQL" being the name of the database,
and "real", because the first one didn't work
and they couldn't change it
because of backwards compatibility.

Thai: 
ส่งออกไปยังฐานข้อมูล
และฐานข้อมูลดูที่
ทับเหล่านั้นและไป
"เอาล่ะ ทุกครั้งที่มีสิ่งหนึ่งแบบนี้
สิ่งนี้จะปรากฏมาต่อมาหรือไม่?
เพียงแค่ทำมันเป็นเครื่องหมายคำพูดปกติ
ไม่ทำมันให้เป็นอะไรที่พิเศษ มัน
คือข้อความ เพียงมองมันเป็นแบบนั้น"
และถ้าคุณอยากจะลองส่งเครื่องหมายทับ
คุณก็ส่งสองทับ:
อันแรกที่จะบอกว่า "ให้มองอันต่อไป
ให้เป็นตัวอักษร" และแล้ว ...
มันทำงาน แต่ก็อุ้ยอ้าย
และในขณะหนึ่ง นี้คือ "ส่ง
คำสั่งในภาษาอังกฤษธรรมดา"
เป็นวิธีเดียวที่จะทำให้สิ่งต่างๆ 
ทำงานในภาษาสักสองสามภาษา,
รวมทั้ง PHP, ซึ่งเป็นภาษาการเขียน
โปรแกรมเว็บที่ใช้กันมากที่สุดในโลก
เพื่อทำให้แย่ลงไป คำสั่งเพื่อเพิ่ม
ทับเหล่านั้น เป็นอะไรที่เก้งก้าง:
mySQL (เป็นชื่อของฐานข้อมูล.)
_real
_escape
_string และจากนั้นคุณ
ใส่ข้อความที่คุณต้องการลงไป
"escape_string" เป็นสิ่งที่คุณต้องการจะทำ
"mySQL" เป็นชื่อของฐานข้อมูล
และ "real" เพราะอันแรกไม่ทำงาน
และพวกมันไม่สามารถเปลี่ยนได้
เพราะความเข้ากันได้ย้อนหลัง

Turkish: 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Turkish: 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Thai: 
ดังนั้น ใครที่ต้องการใช้ สตริงเดิม,
เช่นมากกว่า 10 ปีที่ผ่านมาแล้วในขณะนี้
แต่ใครที่ต้องการใช้
รูปแบบเดิมของสิ่งนี้:
ไม่ปลอดภัยอย่างสมบูรณ์
แทนที่จะปะติดที่นั่น มัน
เพียงแค่เพิ่มคำว่า "real"
ใครก็ตามลืมที่จะเพิ่มนั่น หรือไม่ได้
อ่านเอกสารทั้งหมด?
ใช่แล้ว ทุกคนสามารถมาและ
ลบฐานข้อมูลของคุณได้อย่างมีประสิทธิภาพ
หรือทำสิ่งที่ลึกซึ้งยิ่งขึ้น เช่น update บัญชีคนอื่น ๆ
หรืออ่านรหัสผ่านของคนอื่น ๆ
เพราะเมื่อคุณได้มีการเข้าถึง
ฐานข้อมูล ถ้าคุณคิดออกถึงวิธีการทำงานของมัน
มีไม่มากจริงๆ ที่คุณจะทำไม่ได้
และสิ่งที่เป็น มันจึงเป็น
เรื่องง่ายที่จะทำไม่ถูก
ถ้าคุณได้ทำไม่ถูกครั้งหนึ่ง
ที่ใดก็ได้ในโค้ดของคุณ
และมีรูปแบบเปราะบางจำนวนมาก
ผมไม่อยากเข้าไปสู่การทำไม่ถูกนี้
มันไม่ใช่แค่กรณีของ
การลืมหลีกเลี่ยงเครื่องหมายคำพูด
มีรูปแบบจำนวนมากจริงๆ
ที่มันผิดได้
ถ้าคุณทำอย่างนั้นแล้ว web app เว็บของคุณก็เสี่ยง
และถ้ามีคนคิดออกได้
ว่ามีวิธีการในนั้น
เพราะพวกเขาพยายามสร้าง
ชื่อผู้ใช้ด้วยเครื่องหมายคำพูดในนั้น
โชคดีละกัน! บอกลารหัสผ่าน
ของทุกคนได้เลย

English: 
So, anyone who'd used the original string,
which is, like, more than 10 years ago now,
but anyone who'd used
the original form of this:
completely insecure.
Rather than patch that, they
just added the word "real".
Anyone who forgot to add that, or hadn't
read through all the documentation?
Yep. Anyone can come along and
effectively delete your database.
Or do more subtle things, like update other people's
accounts or read other people's passwords.
Because once you've got access to the
database, if you work out how it works,
there's really not much you can't do.
And the thing is, it is so
easy to get this wrong.
If you get this wrong just
once, anywhere in your code,
and there are lots of really subtle ways that
I'm not gonna get into to get this wrong,
it's not just a case of
forgetting to escape quotes.
There are lots of really
subtle ways to get it wrong.
If you do that, then your web app is vunerable.
And if someone figures
out that there's a way in there,
because they try and create a
username with a quote mark in it,
then good luck! Say goodbye
to everyone's passwords.

English: 
The way it should be done is
something called prepared statements,
and if you are programming
anything to do with a database,
you should be using prepared
statements right now.
The way they work is...
It's a hack.
It's a hack on top of a hack, because, let's be honest,
sending that kind of plain English SQL
command from a programming language,
that's a hack, and then we've had to put more on top of
that, and more on top of that, and more on top of that.
But prepared statements
at least keeps it safe.
With prepared statements,
you send the query.
You send "SELECT * FROM users WHERE username ="
and then you just say '?'.
And that question mark, you then later
say "Right, this is the data I'm putting in.
This is not a command.
Don't do anything to this,
no matter what it looks like.
This is unsafe.

Thai: 
วิธีที่ควรจะกระทำคือสิ่งที่เรียกว่า ข้อความคำสั่ง
ที่เตรียมไว้ (prepared statements)
และถ้าคุณกำลังเขียนโปรแกรม
อะไรกับฐานข้อมูลก็ตาม
คุณควรจะใช้
ข้อความคำสั่งที่เตรียมไว้ ซะเดี๋ยวนี้
วิธีการทำงานคือ ...
มันคือการแฮ็ค
มันเป็นการเฮ็คซ้อนแฮ็ค เพราะ เอาจริงๆ นะ
ส่งคำสั่งแบบ SQL ภาษาอังกฤษธรรมดา
จากภาษาโปรแกรม
นั่นคือการแฮค แล้วเราต้องวางทับด้านบนสิ่งนั้น
และอื่น ๆ ด้านบน และอื่น ๆ ที่ด้านบนอีก
แต่เป็นข้อความคำสั่งที่เตรียมไว้
อย่างน้อยช่วยให้มันปลอดภัย
ด้วยข้อความคำสั่งที่เตรียมไว้
คุณส่ง query
คุณส่ง "SELECT * FROM users WHERE username ="
และจากนั้นคุณเพียงแค่บอกว่า ?
และเครื่องหมายคำถามนั่น แล้วคุณ
บอกในภายหลังว่า "เอาล่ะ นี่เป็นข้อมูลที่ผมวางข้างใน
นี้ไม่ได้เป็นคำสั่ง
อย่าทำอะไรกับสิ่งนี้
ไม่ว่าสิ่งนั่นดูเหมือนอะไรก็ตาม
นี้เป็นสิ่งที่ไม่ปลอดภัย

Turkish: 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Turkish: 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

English: 
Just take it, treat it very gingerly, store it in the
database and don't look at it beyond that."
It's a little more complicated than that, I am simplifying
massively for, you know, talking to a camera.
And if you are web programming,
you should look up the recent security
guidelines of what you should do, etc, etc, etc.
But,
this is what you should be using.
Because right now,
if you're not using prepared statements, it takes
one mistake, anywhere in your application,
one thing where you've
forgotten to put a quote mark in,
or messed it up in some subtle way
that it uses Unicode characters,
or something wonderfully complicated,
particularly if you're using a Microsoft database.
That's from someone that uses Windows.
If you're not using prepared
statements, you are vulnerable,
and you need to fix that.
But in the mean time, as hacks
go, there are worse ones.

Thai: 
เพียงแค่เก็บมันไว้อย่างระมัดระวังใน
ฐานข้อมูลและไม่ต้องดูที่มัน."
มันซับซ้อนมากขึ้นกว่านั้นเพียงเล็กน้อย ผมกำลังพูด
ให้ง่ายมาก สำหรับคุณ รู้มั้ย พูดคุยต่อหน้ากล้อง
และถ้าคุณมีการเขียนโปรแกรมเว็บ
คุณควรมองถึงการรักษาความปลอดภัยล่าสุด
แนวทางของสิ่งที่คุณควรจะทำอย่างไร ฯลฯ ฯลฯ ฯลฯ
แต่,
นี่คือสิ่งที่คุณควรจะใช้
เพราะในขณะนี้
ถ้าคุณไม่ได้ใช้ ข้อความคำสั่งที่เตรียมไว้
แค่หนึ่งความผิดพลาดที่ใดก็ได้ในแอพลิเคชั่นของคุณ
หนึ่งสิ่งที่คุณได้ลืม
ที่จะใส่เครื่องหมายคำพูด
หรือ ทำให้มันยุ่งในแบบที่ยากกว่านั้นอีก
นั่นคือ ใช้ตัวอักษร Unicode,
หรือสิ่งที่ซับซ้อนมากๆ
โดยเฉพาะอย่างยิ่ง ถ้าคุณกำลังใช้ฐานข้อมูล Microsoft
นั่นคือจากคนที่ใช้ระบบปฏิบัติการวินโดวส์
หากคุณไม่ได้ใช้ ข้อความคำสั่งที่เตรียมไว้
คุณมีความเสี่ยง
และคุณจำเป็นต้องแก้ไขนั่นซะ
แต่ในเวลาเดียวกัน มีสิ่งที่เลวร้าย
ยิ่งกว่านั่นคือ การแฮ็กดำเนินไป
บรรยายไทยโดย ytuaeb sciencemath
