0% menganggap dokumen ini bermanfaat (0 suara)
3 tayangan13 halaman

Ask Hasif W.

Diunggah oleh

m-12745252
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai RTF, PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
3 tayangan13 halaman

Ask Hasif W.

Diunggah oleh

m-12745252
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai RTF, PDF, TXT atau baca online di Scribd
Anda di halaman 1/ 13

1.

PENDAHULUAN
Dalam era pendigitalan yang semakin berkembang, penjenayah semakin bijak
mengatur langkah untuk melakukan skim penipuan mereka. Tidak dinafikan
bahawa terdapat banyak kes jenayah siber berlaku pada masa kini. Bagi
menangani isu ini, algoritma yang telah dibangunkan dan diberi nama sebagai
“VOX CHECKER” boleh membantu pengguna meningkatkan tahap keselamatan
siber mereka.

2. CARTA GRANT

3. FASA PEMBANGUNAN ATUR CARA


3.1 Analisa Masalah
3.1.1 Mengenal pasti;

1.MASALAH

i.Mengenal pasti sama ada pautan yang diterima selamat atau tidak

2.KEPERLUAN SISTEM

i.Python 3.7

3.PERISIAN

i.Windows

4.SASARAN PENGGUNA

i.Orang awam

3.1.2 Mengenal pasti;

INPUT

URL yang diberikan oleh pengguna sebagai teks input. Contohnya:


http://example.com

PROSES

· Pemeriksaan Pola Mencurigakan (Fungsi is_suspicious_link):

· Algoritma memeriksa URL berdasarkan pola yang mencurigakan, seperti


kata kunci umum dalam serangan phishing (contohnya, "secure", "login",
"verify").

· Algoritma juga mencari tanda-tanda lain seperti kehadiran simbol @, atau


urutan nombor panjang yang tidak biasa.

· Pengambilan Halaman Web (Fungsi fetch_page):


·

· Jika URL tidak mencurigakan, kod akan cuba mengakses laman web tersebut
menggunakan pustaka requests.

· Laman web diambil dengan cara GET request dan respons HTML
dikembalikan jika sambungan berjaya.

· Analisis Kandungan Halaman Web (Fungsi analyze_link):

· Jika laman berjaya diambil, kandungan HTML diproses menggunakan


BeautifulSoup.

· Algoritma kemudian memeriksa sama ada terdapat borang (<form>) dengan


aksi "login" di dalamnya, yang boleh menunjukkan laman web palsu.

· Jika tiada borang atau pola yang mencurigakan dijumpai, laman dianggap
selamat.

OUTPUT

· Jika URL mengandungi pola yang mencurigakan:

· "The link is not safe: [URL]"

· Jika URL selamat dan laman web berjaya diambil, tetapi terdapat borang log
masuk yang mencurigakan:

· "Warning: A form with 'login' in the action URL was found. The link is not
safe: [URL]"

· Jika URL selamat dan tiada borang log masuk mencurigakan dijumpai:

· "Link analysis completed. No red flags found."


·

· Jika terjadi ralat ketika mengambil laman web, seperti sambungan gagal
atau URL tidak sah:

· "Unable to analyze the page due to a fetch error."


3.1.3 Membuat;

TEMUBUAL

RUJUKAN INTERNET

· Real Python's Guide on Web Scraping with Beautiful Soup


· Brian Li's Broken Link Checker
· 33rd Square's Link Extraction Guide
· Real Python's URL Scraping Overview
· Beautiful Soup Official Documentation
3.2 REKA BENTUK ATUR CARA

3.2.1 MENULIS PSEUDOKOD

FUNGSI is_suspicious_link(url)

DICIPTAKAN suspicious_patterns SEBAGAI LIST

TAMBAH "secure" KE suspicious_patterns


TAMBAH "login" KE suspicious_patterns

TAMBAH "update" KE suspicious_patterns

TAMBAH "verify" KE suspicious_patterns

TAMBAH "5 atau lebih digit" KE suspicious_patterns

TAMBAH "@" KE suspicious_patterns

TAMBAH "click" KE suspicious_patterns

TAMBAH "here" KE suspicious_patterns

TAMBAH "free" KE suspicious_patterns

TAMBAH "offer" KE suspicious_patterns

UNTUK SETIAP pattern DALAM suspicious_patterns

JIKA pattern dijumpai DI url

KEMBALIKAN True

AKHIR JIKA

AKHIR UNTUK

KEMBALIKAN False

END FUNGSI

FUNGSI fetch_page(url)

JIKA url TIDAK DIMULAI DENGAN "http://" atau "https://"

URL = "http://" + url


CUBA

headers = {"User-Agent": "Mozilla/5.0..."}

response = requests.get(url, headers=headers)

response.raise_for_status() // Semak status kod

KEMBALIKAN response.text

KECUALI HTTPError

CETAK "Ralat HTTP: " + http_err

KECUALI ConnectionError

CETAK "Ralat sambungan ke " + url

KECUALI Timeout

CETAK "Ralat tamat: " + timeout_err

KECUALI Exception

CETAK "Ralat: " + req_err

KEMBALIKAN None

END FUNGSI

FUNGSI analyze_link(url)

JIKA is_suspicious_link(url) ADALAH True

CETAK "Pautan tidak selamat: " + url

KELUAR
page_content = fetch_page(url)

JIKA page_content TIDAK None

soup = BeautifulSoup(page_content, 'html.parser')

3.2.2 MELUKIS CARTA ALIR

[Mulakan]

[Paparkan Mesej Selamat Datang]

[Masukkan URL]

[Adakah URL disediakan?] - Tidak -> [Keluar]

Ya

[Semak URL Mencurigakan]

[Adakah URL mencurigakan?] - Ya -> [Cetak "Pautan tidak selamat"] -> [Keluar]

|
Tidak

[Ambil Kandungan Halaman]

[Adakah pengambilan berjaya?] - Tidak -> [Cetak "Tidak dapat menganalisis


halaman disebabkan ralat pengambilan"] -> [Keluar]

Ya

[Parse Halaman Menggunakan BeautifulSoup]

[Semak untuk Borang Log Masuk]

[Adakah borang ditemui?] - Tidak -> [Cetak "Tiada borang mencurigakan dikesan
di halaman."]

Ya

[Untuk setiap borang]


|

[Adakah 'login' dalam tindakan?] - Ya -> [Cetak "Amaran: Borang dengan 'login'
dalam URL tindakan dijumpai."] -> [Cetak "Pautan tidak selamat"] -> [Keluar]

Tidak

[Teruskan memeriksa borang]

[Cetakan "Analisis pautan selesai. Tiada tanda merah ditemukan."]

[ Tamat ]

3.3 PENGEKODAN

import requests

from bs4 import BeautifulSoup

import re

def is_suspicious_link(url):

# Check for basic suspicious patterns in the URL

suspicious_patterns = [
r'\b(secure|login|update|verify)\b', # Keywords commonly used in phishing

r'(\d{5,})', # Long sequences of digits (5 or more)

r'@', # Presence of '@' in URLs

r'\b(click|here|free|offer)\b', # Common spam words

# Check if any suspicious pattern matches the URL

for pattern in suspicious_patterns:

if re.search(pattern, url, re.IGNORECASE):

return True

return False

def fetch_page(url):

# Ensure the URL has a valid HTTP or HTTPS scheme

if not url.startswith(('http://', 'https://')):

url = 'http://' + url # Assume http if no scheme is provided

try:

headers = {

'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64)


AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3'}
response = requests.get(url, headers=headers)

response.raise_for_status() # Raise an HTTPError if the status code is not 200

return response.text

except requests.exceptions.HTTPError as http_err:

print(f"HTTP error occurred: {http_err}")

except requests.exceptions.ConnectionError as conn_err:

print(f"Error connecting to {url}: {conn_err}")

except requests.exceptions.Timeout as timeout_err:

print(f"Timeout error occurred: {timeout_err}")

except requests.exceptions.RequestException as req_err:

print(f"An error occurred: {req_err}")

return None

def analyze_link(url):

# Check if the link itself is suspicious

if is_suspicious_link(url):

print(f"The link is not safe: {url}")

return

# Fetch the page content

page_content = fetch_page(url)

if page_content:
# Parse the page content

soup = BeautifulSoup(page_content, 'html.parser')

# Check for presence of login forms

forms = soup.find_all('form')

if forms:

for form in forms:

if form.get('action') and 'login' in form.get('action'):

print("Warning: A form with 'login' in the action URL was found.")

print(f"The link is not safe: {url}")

return

else:

# If no suspicious forms, we continue to check for any other issues

print("No suspicious forms detected on the page.")

print("Link analysis completed. No red flags found.")

else:

print("Unable to analyze the page due to a fetch error.")

if __name__ == "__main__":

print("Welcome to the Link Checker!")

print("You can copy-paste the link below, or type it directly.")


# Input for the URL to be checked

input_url = input("Please enter the URL you want to check (e.g.,


http://example.com): ").strip()

if input_url:

analyze_link(input_url)

else:

print("No URL provided. Exiting.")

Anda mungkin juga menyukai