国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

開發(fā)安全之:Database access control

這篇具有很好參考價值的文章主要介紹了開發(fā)安全之:Database access control。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

Overview

如果沒有適當?shù)?access control,就會執(zhí)行一個包含用戶控制主鍵的 SQL 指令,從而允許攻擊者訪問未經(jīng)授權的記錄。

Details

Database access control 錯誤在以下情況下發(fā)生: 1. 數(shù)據(jù)從一個不可信賴的數(shù)據(jù)源進入程序。 2. 這個數(shù)據(jù)用來指定 SQL 查詢中主鍵的值。 在這種情況下,在 cancel.php 中第 64 行的 mysql_query() 使用該數(shù)據(jù)。

例 1:以下代碼用到一個參數(shù)化指令,這個指令轉義了元字符,以防止 SQL injection 漏洞,并構建和執(zhí)行一個 SQL 查詢。該 SQL 查詢指令可以搜索與指定標識符 [1] 相匹配的清單。您可以從與當前被授權用戶有關的所有清單中選擇這些標識符。 ... $id = $_POST['id']; $query = "SELECT * FROM invoices WHERE id = ?"; $stmt = $mysqli->prepare($query); $stmt->bind_param('ss',$id); $stmt->execute(); ... 問題在于開發(fā)者沒有考慮到所有可能出現(xiàn)的 id 值。雖然界面生成了屬于當前用戶的清單標識符列表,但是攻擊者可以繞過這個界面,從而獲取所需的任何清單。由于此示例中的代碼沒有執(zhí)行檢查以確保用戶具有訪問所請求清單的權限,因此它會顯示任何清單,即使此清單不屬于當前用戶。 許多現(xiàn)代 Web 框架都會提供對用戶輸入執(zhí)行驗證的機制(包括 Struts 和 Struts 2)。為了突出顯示未經(jīng)驗證的輸入源,F(xiàn)ortify 安全編碼規(guī)則包會對 Fortify Static Code Analyzer(Fortify 靜態(tài)代碼分析器)報告的問題動態(tài)重新調整優(yōu)先級,即在采用框架驗證機制時降低這些問題被利用的幾率并提供指向相應證據(jù)的指針。我們將這種功能稱之為上下文敏感排序。為了進一步幫助 Fortify 用戶執(zhí)行審計過程,F(xiàn)ortify 軟件安全研究團隊開發(fā)了 Data Validation(數(shù)據(jù)驗證)項目模板,該模板根據(jù)應用于輸入源的驗證機制按文件夾對問題進行了分組。

Recommendations

與其靠表示層來限制用戶輸入的值,還不如在應用程序和數(shù)據(jù)庫層上進行 access control。任何情況下都不允許用戶在沒有取得相應權限的情況下獲取或修改數(shù)據(jù)庫中的記錄。每個涉及數(shù)據(jù)庫的查詢都必須遵守這個原則,這可以通過把當前被授權的用戶名作為查詢語句的一部分來實現(xiàn)。

示例 2:以下代碼實現(xiàn)的功能與Example 1 相同,但是附加了一個限制,以驗證清單是否屬于當前經(jīng)過身份驗證的用戶。 ... $mysqli = new mysqli($host,$dbuser, $dbpass, $db); $userName = getAuthenticated($_SESSION['userName']); $id = $_POST['id']; $query = "SELECT * FROM invoices WHERE id = ? AND user = ?"; $stmt = $mysqli->prepare($query); $stmt->bind_param('ss',$id,$userName); $stmt->execute(); ...文章來源地址http://www.zghlxwxcb.cn/news/detail-796741.html

到了這里,關于開發(fā)安全之:Database access control的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • 解決 1044 - Access denied for user ‘root‘@‘%‘ to database ‘xxxxxx‘ 問題

    解決 1044 - Access denied for user ‘root‘@‘%‘ to database ‘xxxxxx‘ 問題

    在CentOS7中Docker中部署MySQL5.7容器,使用遠程工具創(chuàng)建數(shù)據(jù)庫時,報1044錯誤,但是進入Docker中的MySQL容器中,卻可以正常創(chuàng)建數(shù)據(jù)庫,出現(xiàn)這個問題的根本原因是遠程連接用戶權限不足,直接原因是創(chuàng)建遠程連接用戶 ‘root@%’ 時,沒有添加訪問數(shù)據(jù)庫的權限。 ??操作截圖 ?

    2024年02月13日
    瀏覽(53)
  • 由于安裝了Microsoft Access Database Engine 64 位組件,無法安裝32位的問題

    由于安裝了Microsoft Access Database Engine 64 位組件,無法安裝32位的問題

    如果已安裝 Office 365,并排檢測將阻止安裝繼續(xù)進行。 而是從命令行執(zhí)行這些組件的 /quiet 安裝。 嘗試參考以下步驟 (1) 下載 Microsoft Access Database Engine 2016 Redistributable (2) 以管理員身份打開命令提示符。 (3) 提供.exe 文件的完整路徑并添加’/ quiet’。像下面。 它將成功安裝 A

    2024年02月16日
    瀏覽(20)
  • 解決Mysql的Access denied for user ‘root‘@‘%to database ‘xxx‘

    今天突然遠程登錄一下mysql發(fā)現(xiàn), 新建數(shù)據(jù)庫時 ,出現(xiàn)Access denied for user ‘root‘@‘%to database ‘xxx‘ 這是什么鬼,以前使用沒有問題呀??? 然后就csdn一下 首先到文本登錄一下root用戶賬號 重新給root%用戶授權一下 執(zhí)行發(fā)現(xiàn), 我去,沒有辦法。從錯誤發(fā)現(xiàn)時從identified的地

    2024年02月07日
    瀏覽(21)
  • 解決數(shù)據(jù)庫出現(xiàn)Access denied for user ‘root‘@‘%to database ‘xxx‘ 問題

    解決數(shù)據(jù)庫出現(xiàn)Access denied for user ‘root‘@‘%to database ‘xxx‘ 問題

    ?原因:? root@%表示 root用戶 通過任意其他端訪問操作 被拒絕!? 授權即可: 1:進入數(shù)據(jù)庫 mysql -u root -p 輸入密碼 2:輸入?show grants; ? ?3:輸入?mysql grant all privileges on *.* to \\\'root\\\'@\\\'%\\\' identified by \\\'數(shù)據(jù)庫密碼\\\' with grant option; ?4 :重啟服務器??service mysql restart 新建數(shù)據(jù)庫 ?我們需

    2024年02月12日
    瀏覽(17)
  • 操作mysql出現(xiàn)1044 Access denied for user ‘root‘@‘%‘ to database ‘xxx‘錯誤提示

    1044 Access denied for user ‘root’@‘%’ to database ‘xxxx’ 1.進入mysql 容器 2.輸入賬號密碼 權限 4.其中,xxxx代表所操作數(shù)據(jù)庫名稱,password為訪問數(shù)據(jù)庫賬戶的密碼 問題解決

    2024年02月12日
    瀏覽(20)
  • 登陸mysql提示 :ERROR 1044 (42000): Access denied for user ‘‘@‘localhost‘ to database ‘mysql‘

    再次登陸mysql如提示 : ERROR 1044 (42000): Access denied for user \\\'\\\'@\\\'localhost\\\' to database \\\'mysql\\\' 這個錯誤是因為mysql數(shù)據(jù)庫的user表里,存在用戶名為空的賬戶即匿名賬戶,實際上是匿名登錄的, 通過錯誤提示里的\\\'\\\'@\\\'localhost\\\'可以看出來 ,雖然登錄時使用命令mysql -u root -p ,指定了用戶是r

    2024年02月16日
    瀏覽(44)
  • No ‘Access-Control-Allow-Origin‘ header is present on the requested resource關于vue跨域問題
重復Access-Control-Allow-Origin

    No ‘Access-Control-Allow-Origin‘ header is present on the requested resource關于vue跨域問題 重復Access-Control-Allow-Origin

    ? ? ? ? 瀏覽器為了安全考慮,有一個最基本的安全策略,即同源策略。 ? ? ? ? 同源策略規(guī)定:瀏覽器在解析Ajax請求時,要求瀏覽器的路徑與Ajax的請求的路徑必須滿足三個要求,即請求的協(xié)議、域名、端口號都相同,滿足同源策略,可以訪問服務器,否則,只要有一個不

    2023年04月17日
    瀏覽(28)
  • No ‘Access-Control-Allow-Origin‘ header is present on the requested resource關于vue跨域問題
                    
            
重復Access-Control-Allow-Origin

    No ‘Access-Control-Allow-Origin‘ header is present on the requested resource關于vue跨域問題 重復Access-Control-Allow-Origin

    ? ? ? ? 瀏覽器為了安全考慮,有一個最基本的安全策略,即同源策略。 ? ? ? ? 同源策略規(guī)定:瀏覽器在解析Ajax請求時,要求瀏覽器的路徑與Ajax的請求的路徑必須滿足三個要求,即請求的協(xié)議、域名、端口號都相同,滿足同源策略,可以訪問服務器,否則,只要有一個不

    2024年02月06日
    瀏覽(24)
  • sql 1044 - Access denied for user ‘root‘@‘localhost‘ to database ‘information_schema‘

    sql 1044 - Access denied for user ‘root‘@‘localhost‘ to database ‘information_schema‘

    這是sql數(shù)據(jù)庫執(zhí)行問題。 錯誤原因:未打開數(shù)據(jù)庫直接導入sql文件。 解決步驟: 1.正確打開數(shù)據(jù)庫。 數(shù)據(jù)庫如下第一個為綠色 2.右擊該數(shù)據(jù)庫,選擇新建數(shù)據(jù)庫,輸入數(shù)據(jù)庫名,對應的字符集和規(guī)則,一般為utf8,規(guī)則為utf8_general_ci。 utf8和utfmb4區(qū)別: utfmb4 兼容 utf8 且可以

    2024年02月06日
    瀏覽(17)
  • Access-Control-Expose-Headers 響應報頭、跨域 公開響應頭

    前后端分離 的項目,前端地址與后端地址不同,出現(xiàn)了 跨域 問題,因此 前端人員拿取不到后端返回的Response.headers. 自定義的響應頭 “X-Check-Submit-Repeat”(只能拿到默認的標頭) 這里是引用 在使用CORS方式跨域時,瀏覽器只會返回 默認的頭部 Header,認情況下可用的響應頭包括:

    2024年02月02日
    瀏覽(25)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包