AI-Assisted Coding for Developers
Francesca Donadoni
AI Curriculum Manager, DataCamp
撰寫一個 Python 函式,用來解析電子郵件位址。
撰寫一個 Python 函式,用來解析電子郵件位址。它應通過以下測試:
- 接受像「[email protected]」這樣的有效位址。
- 拒絕像「user@@domain」這種無效輸入。
- 針對空輸入拋出 ValueError。
User prompt: 為一個處理使用者提交表單資料並寫入 SQL 資料庫的函式,產生 Python 單元測試。
Model response:
這是一份可直接執行的 pytest 測試,涵蓋驗證、正規化、SQL 注入防護,以及交易行為,針對會處理表單資料並寫入 SQL 資料庫的函式。
[...]
# ---------- Test DB fixtures ----------
@pytest.fixture()
def conn():
"""In-memory SQLite DB with a users table."""
c = sqlite3.connect(":memory:") [...]
User prompt: 使用 pytest 為下列函式產生 Python 單元測試。包含空輸入、輸入含 SQL 關鍵字與特殊字元的案例。假設使用模擬的資料庫連線。 <INSERT FUNCTION>
Model response:
這是一個自含的 pytest 測試模組,使用 mock(無真實 DB),涵蓋空輸入、SQL 關鍵字與特殊字元,也檢查 commit/close 行為及例外是否被吞掉。
[...]
@pytest.fixture
def mock_sqlite_connect(monkeypatch):
"""
Patch sqlite3.connect to return a MagicMock connection + cursor.
[...]
$$
掃描下列 Python 函式,找出潛在弱點,若有請提出更安全的替代作法。
$$
檢視此程式碼的常見網頁安全問題,包括 SQL 注入、XSS,以及輸入驗證缺陷。

def login(username, password):
query = f"SELECT * FROM users WHERE username = '{username}' \
AND password = '{password}'"
result = db.execute(query)
return result.fetchone()
以下是針對你的登入函式所做的精要 OWASP 前 10 名稽核,並附更安全的改寫。
username = "admin' --" → 會略過密碼檢查。[...]AI-Assisted Coding for Developers