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

Soal dan pembahasan LKS ITNSA Network Infrastructure Basic

Soal tahun 2021 tingkat Nasional Soal bisa di download di https://itnsa.id Basic Configuration Configure IP Address of all network devices according to the addressing table.  Create SSH user ‘patah’ with password specified in the appendix.  Make sure the user are able to enter configuration commands in the router.  Allow server admins to SSH to all network devices.  If you need to set additional password on the Routers, use Skills39 Look at the appendix table and configure accordingly Configure IP address: csr1000v# configure terminal #change interface name according to the topology csr1000v (config)# interface GigabitEthernet0 csr1000v (config-if)# ip address  x.x.x.x y.y.y.y csr1000v (config-if)# no shutdown Create SSH user: csr1000v# configure terminal csr1000v (config) # username patah password cisco123 csr1000v (config)# privilege 15 patah Allow server admins to SSH: csr1000v# configure terminal csr1000v (config)# ip access-list standard SSH_ACL csr10...