![](/img/trans.png)
[英]What is the 'double-dot' [eg. 5..toFixed()] I see in minified js?
[英]What can be changed by user on web? (eg. $_SESSION, JS code)
我想知道與Web 開發相關的用戶可以更改哪些內容不能更改。 主要是如果用戶可以更改 $_SESSION 中的變量。 但是很高興知道某些看似安全的技術實際上是否不安全。 另一個例子是用戶更改 JS 類等中的代碼。
如果這個問題對某人來說太微不足道,我很抱歉。 學習 Web 開發 2 年,想學點新東西。
這是一個代碼示例,我不確定用戶是否可以更改他的 $_SESSION['group']
public function login() {
if(isset($_POST['login_submit'])) {
if(isset($_POST['username']) and isset($_POST['password'])) {
// Fetching user data
$stmt = $this->conn->prepare('SELECT Password FROM TB_Users WHERE Username = ?');
$stmt->execute([$_POST['username']]);
$user = $stmt->fetch();
//-----------------------
// Password Verification
if(password_verify($_POST['password'], $user['Password'])) {
//-----------------------
// Fetching Group of user so it can be used later to fetch Permissions
$stmt = $this->conn->prepare('SELECT TB_userGroups_ID FROM TB_Users WHERE Username = ?');
$stmt->execute([$_POST['username']]);
$UserGroup = $stmt->fetch();
$_SESSION['group'] = $UserGroup['TB_userGroups_ID'];
//-----------------------
// Sending user back from Login page to Main/Index page
header("Location: ../index.php");
exit();
//-----------------------
}
}
}
非常感謝任何幫助或重定向到來源。
如果user
指的是網站的訪問者而不是開發人員(只是確保),那么他們不能單方面更改$_SESSION
中的任何內容,因為這些值僅存在於服務器上。 用戶只有一個 cookie,服務器使用該 cookie 來識別$_SESSION
變量的集合屬於他們。 開發人員負責確保控制進入$_SESSION
的內容。 在您在這里的示例中,更改$_SESSION
的唯一方法是基於從數據庫中檢索到的內容,因此假設內容是安全的,那么它就會受到保護。
我唯一的建議是擺脫你的isset($_POST['var'])
東西並用filter_input()
替換它。 您可以使用它從$_POST
檢索值並對其進行清理。 調用時,您可以期待null
或false
內容缺失或無效,因此控制驗證與空值相比更容易一些。 樣本:
$username = filter_input(INPUT_POST, 'username', FILTER_SANITIZE_STRING);
完整的文檔在這里https://www.php.net/manual/en/function.filter-input.php
請務必熟悉過濾器標志。 例如, FILTER_SANITIZE_STRING
不是一個很好的密碼。
其他一些需要考慮的事情:
php.ini
中。.htaccess
或主機/虛擬主機配置文件中設置。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.