Flask Tutorials

Flask’in redirect() Fonksiyonuyla Verileri Güvenli Şekilde Aktarım

Spread the love

Flask’in redirect() fonksiyonu, kullanıcıları web uygulamanızda yönlendirmek için olmazsa olmazdır. Form gönderimleri veya girişler gibi belirli eylemlerden sonra kullanıcıları farklı URL’lere sorunsuz bir şekilde geçirmenizi sağlar. Ancak, sadece yönlendirme her zaman yeterli değildir; genellikle yeni sayfaya veri geçirmeniz gerekir. Bu makale, güvenlik en iyi uygulamalarına odaklanarak, Flask uygulamalarınızda parametrelerle redirect()‘i etkili bir şekilde nasıl kullanacağınızı açıklamaktadır.

İçindekiler Tablosu

Parametre Geçirme Gereksinimini Anlamak

Temel redirect() fonksiyonu, doğası gereği parametreleri doğrudan geçirmeyi desteklemez. Girdi olarak bir URL alır. Veri iletmek için URL parametrelerinden veya sunucu tarafı oturum yönetiminden yararlanmanız gerekir.

Yöntem 1: Hassas Olmayan Veriler İçin URL Parametrelerini Kullanma

En yaygın yaklaşım, parametreleri URL’ye sorgu dizesi olarak eklemeyi içerir (soru işaretinden ‘?’ sonraki kısım). Parametreler, ve işareti (‘&’) ile ayrılmış anahtar-değer çiftleridir.


from flask import Flask, render_template, redirect, url_for, request

app = Flask(__name__)

@app.route('/form', methods=['GET', 'POST'])
def my_form():
    if request.method == 'POST':
        name = request.form['name']
        age = request.form['age']
        return redirect(url_for('success', name=name, age=age))
    return render_template('form.html')

@app.route('/success')
def success():
    name = request.args.get('name')
    age = request.args.get('age')
    return f"Başarılı! Ad: {name}, Yaş: {age}"

if __name__ == '__main__':
    app.run(debug=True)

<form method="POST">
    <label for="name">Ad:</label>
    <input type="text" id="name" name="name"><br><br>
    <label for="age">Yaş:</label>
    <input type="text" id="age" name="age"><br><br>
    <input type="submit" value="Gönder">
</form>

Bu, /success?name=John&age=30 gibi URL’ler oluşturur. url_for parametre yönetimini basitleştirir.

Yöntem 2: Hassas Veriler İçin Flask Oturumlarını Kullanma

Hassas veriler (kullanıcı kimlikleri, kimlik doğrulama belirteçleri) için asla URL parametreleri kullanmayın. Flask’in oturum nesnesi, verileri kullanıcının oturumu ile ilişkilendiren sunucu tarafı depolama sağlar.


from flask import Flask, render_template, redirect, url_for, request, session

app = Flask(__name__)
app.secret_key = 'your_secret_key'  # Güçlü, rastgele oluşturulmuş bir anahtar ile DEĞİŞTİRİN

@app.route('/login', methods=['GET', 'POST'])
def login():
    if request.method == 'POST':
        username = request.form['username']
        # ... kimlik doğrulama mantığı ...
        if username == "validuser":
            session['username'] = username
            return redirect(url_for('dashboard'))
    return render_template('login.html')

@app.route('/dashboard')
def dashboard():
    username = session.get('username')
    if username:
        return f"Hoş geldin, {username}!"
    else:
        return redirect(url_for('login'))

if __name__ == '__main__':
    app.run(debug=True)

Çok Önemli, güçlü, rastgele oluşturulmuş bir secret_key ayarlayın. Bu, oturum verilerinin şifrelenmesi için çok önemlidir.

Doğru Yöntemi Seçme

URL’de görülebilen hassas olmayan veriler için URL parametrelerini kullanın. Gizli kalması gereken gizli veriler için oturumları kullanın.

Bu kılavuz, sorunsuz ve güvenli bir kullanıcı deneyimi sağlamak için Flask’in redirect() fonksiyonu ile güvenli ve verimli parametre geçişini göstermektedir.

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir