Skip to main content

how to use redis as flask session storage

 
Im this tutorial we simply configured redis locally through docker. We can easily configure it with the command below.  

$ docker pull redis:latest $ docker run -d -p 6379:6379 --name session_storage redis:latest

We can check the status of the redis container by entering the command below.

$ docker ps CONTAINER ID  
 

Below is a simple web application that uses Python flask to store and retrieve information in sessions. 

 import redis
from flask import *
from flask_session import Session

app = Flask(__name__)

app.secret_key = 'Skills39Test'

app.config['SESSION_TYPE'] = 'redis'
app.config['SESSION_PERMANENT'] = False
app.config['SESSION_USE_SIGNER'] = True
app.config['SESSION_REDIS'] = redis.from_url('redis://localhost:6379')

server_session = Session(app)

@app.route('/info', methods=['GET','POST'])
def set():
    if request.method == 'GET':
        username = session['username']
        name = session['name']
        message = session['message']
        return jsonify({'username':username,'name':name,'message':message})

    else:
        session['username'] = request.form.get('username')
        session['name'] = request.form.get('name')
        session['message'] = request.form.get('message')
        return jsonify({'upload':'success'})


app.run(host='0.0.0.0', port=8080)

Create the below file for dependencies:
# requirements.txt
flask
flask_session
redis




To check, run the below code using python to check the endpoint response

import requests
res = requests.post("http://localhost:8080/customer", data={'username':'sysops1', 'name':'Bagus Santosa', 'message': 'Hallo World'})
print(res.status_code)

requests.get("http://localhost:8080/info", cookies={'session':session})
print(res.json())

To check inside the Redis. We can access the redis container using the command below. 

$ docker exec -it session_storage redis- 127.0.0.1:6379> keys * 1) "session:session_id"

We can view the information stored in the session by entering the command below. 

127.0.0.1:6379> get session:session_id

Thank you.

Comments

Popular posts from this blog

ITNSA Konfigurasi Ansible WinRM Windows Server

 ### Mengonfigurasi Koneksi Ansible ke Server Windows Ansible adalah alat otomatisasi yang sangat populer dan sering digunakan untuk mengelola berbagai jenis server, termasuk server Windows. Artikel ini akan memandu Anda melalui langkah-langkah untuk mengonfigurasi Ansible agar dapat terhubung dengan server Windows menggunakan WinRM (Windows Remote Management). #### 1. Menyiapkan WinRM di Server Windows ##### Opsi 1: Menggunakan Skrip PowerShell Anda bisa menggunakan skrip PowerShell yang sudah disediakan untuk mengonfigurasi WinRM agar dapat digunakan oleh Ansible. 1. Buka PowerShell di server Windows Anda sebagai administrator. 2. Jalankan perintah berikut untuk mengunduh dan mengeksekusi skrip konfigurasi:    ```powershell    iex (New-Object Net.WebClient).DownloadString('https://github.com/ansible/ansible/raw/devel/examples/scripts/ConfigureRemotingForAnsible.ps1')    ``` ##### Opsi 2: Pengaturan Manual 1. Buka PowerShell di server Windows Anda seb...

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...

Pembahasan ITNSA Ansible Postfix

Ansible adalah salah satu tool untuk melakukan otomasi konfigurasi server yang bisa dilakukan berulang-ulang atau dikenal juga configuration management,  dalam tutorial kali ini akan melakukan otomasi salah satu task dasar dalam bidang ITNSA yang sering muncul, ini bukan soal yang ada langsung dalam ITNSA namun ini adalah salah satu bahan pelajaran aja yang barangkali bisa dijadikan sebagai referensi untuk konfigurasi system lainnya.  btw ITNSA adalah kependekan dari bidang IT Network System Administration nama bidang lomba yang mulai dari tingkat kab/kota untuk SMK atau kalau di SMA namanya OSN, yang mana punya tingkatan juga baik dalam kab/kota, provinsi, nasional, sampai internasional. Okay sebelum itu pastikan kita sudah punya dasar pengetahuan tentang SSH, Ansible cara koneksi nya gmana cara membuat ssh key nya. Bisa juga baca tutorial ini terlebih dahulu  Pembahasan Ansible ITNSA Dasar Okay mari kita bahas cara konfigurasi Postfix, sebelumnya pastikan juga kita suda...