Skip to main content

Python Script Flask for learning API getting started

Python Script Flask for learning API getting started


#!/bin/bash

apt-get update apt-get install -y python3-pip python3-flask # Create application file cat <<EOF > /home/app.py from flask import Flask, jsonify, request app = Flask(__name__) transactions = [ {"id": 1, "amount": 100, "category": "Food", "description": "Lunch"}, {"id": 2, "amount": 500, "category": "Rent", "description": "Monthly rent"} ] @app.route("/health") def health(): return jsonify({"status": "ok"}) @app.route("/transactions", methods=["GET"]) def get_transactions(): return jsonify(transactions) @app.route("/transactions", methods=["POST"]) def add_transaction(): data = request.json new_id = max([t["id"] for t in transactions]) + 1 if transactions else 1 data["id"] = new_id transactions.append(data) return jsonify(data), 201 @app.route("/transactions/<int:tid>", methods=["GET"]) def get_transaction(tid): t = next((t for t in transactions if t["id"] == tid), None) return jsonify(t) if t else (jsonify({"error": "Not found"}), 404) @app.route("/transactions/<int:tid>", methods=["PUT"]) def update_transaction(tid): t = next((t for t in transactions if t["id"] == tid), None) if not t: return jsonify({"error": "Not found"}), 404 t.update(request.json) return jsonify(t) @app.route("/transactions/<int:tid>", methods=["DELETE"]) def delete_transaction(tid): global transactions transactions = [t for t in transactions if t["id"] != tid] return jsonify({"result": True}) if __name__ == "__main__": app.run(host="0.0.0.0", port=80) EOF # Create systemd service cat <<EOF > /etc/systemd/system/flask-app.service [Unit] Description=Flask Application After=network.target [Service] User=root ExecStart=/usr/bin/python3 /home/app.py Restart=always [Install] WantedBy=multi-user.target EOF # Start service systemctl daemon-reload systemctl enable flask-app.service systemctl restart flask-app.service

Comments

Popular posts from this blog

Dasar instalasi dan konfigurasi OpenLDAP

 ### Panduan Instalasi OpenLDAP Berikut adalah panduan sederhana untuk menginstal dan mengkonfigurasi OpenLDAP pada server dengan domain `bagussa.my.id` dan IP `10.10.10.1`.  #### 1. Instalasi OpenLDAP Pertama, instal OpenLDAP beserta paket-paket yang diperlukan: ```bash sudo apt update sudo apt install slapd ldap-utils ``` Selama instalasi, Anda mungkin akan diminta untuk memasukkan kata sandi untuk `admin` LDAP. Simpan kata sandi ini dengan aman. #### 2. Konfigurasi Manual di `/etc/hosts` Tambahkan entri untuk domain dan IP di file `/etc/hosts`: ```bash sudo nano /etc/hosts ``` Tambahkan baris berikut: ``` 10.10.10.1    bagussa.my.id ``` Simpan dan keluar dari editor. #### 3. Konfigurasi `/etc/ldap/ldap.conf` Edit file konfigurasi LDAP: ```bash sudo nano /etc/ldap/ldap.conf ``` Tambahkan atau modifikasi baris berikut: ``` BASE    dc=bagussa,dc=my,dc=id URI     ldap://10.10.10.1 ``` Simpan dan keluar dari editor. #### 4. Buat OU dan Group de...

Soal dan pembahasan LKSN ITNSA

Berikut adalah koleksi soal-soal ITNSA dan beberapa website yang memberikan pembahasan pada event perlombaaan LKS SMK Nasional bidang lomba IT Network Systems Administration. 2014 Palembang Di tahun ini ada 1 soal packet tracer. Di website dibawah ini diberikan juga cara pembahasannya. https://agussas.wordpress.com/2015/04/02/review-soal-lks-nasional-it-network-23-packet-tracer-challenge/ Semua soal:  https://www.dropbox.com/sh/l90zyke2ib5msgv/AAA3kPOFo-zEn4wPOW4a3iMwa?dl=0 dan https://drive.google.com/file/d/18lDhtMjAnPAhkfOJ6uFHsC5j6ycg3K4I/view Pembahasan juga dalam bentuk video di youtube:  https://www.youtube.com/watch?v=8QML594nQBU 2015 Banten Pembahasan:   https://www.youtube.com/watch?v=quDbpC2xSfQ Soal:  https://drive.google.com/file/d/1B09IYfdoGENBL3txSQodpptG1zdQxBWI/view 2016 Malang Soal:   https://drive.google.com/file/d/13-2bRtb5IXO9vxAhLfhghZbDXeUzD0FI/view Pembahasan:   https://www.youtube.com/watch?v=zmUSUZguH24 20...

Analisa Traffic WAF

 Tentu, berikut adalah contoh untuk setiap bagian analisis traffic WAF: #### 1. Analisis Path **Contoh**: - **Path yang Tidak Biasa**: Misalkan aplikasi Anda memiliki endpoint `/login`. Jika Anda melihat permintaan ke path seperti `/admin/../../config`, ini adalah path yang mencurigakan karena tampaknya mencoba mengakses direktori konfigurasi dengan teknik path traversal. - **Pengelompokan Traffic**: Jika banyak permintaan ke path `/api/upload` yang mencurigakan, ini bisa menunjukkan upaya eksploitasi terhadap fungsi upload file. #### 2. Analisis Method **Contoh**: - **Method GET**: Anda melihat permintaan GET dengan query string yang panjang seperti `GET /search?q=...`, di mana query string sangat panjang dan mengandung karakter yang tidak biasa. Ini bisa menjadi indikasi serangan seperti buffer overflow. - **Method POST**: Anda menerima banyak permintaan POST dengan payload yang besar dan mencurigakan, seperti `POST /update-profile` dengan data yang tidak sesuai format atau panja...