PHP應避免使用addslashes()的情況
[size=10.5pt]When peer reviewing PHP code, I often find dangerous uses of addslashes(). It is often believed this is a safe way of escaping user input before passing it to e.g. a SQL query, but in fact it's unsafe. If you find yourself using addslashes(), think twice if you are using it safely:
1. In a MySQL context, use mysql_real_escape_string() instead.
2. MySQLi has an identical mysqli_real_escape_string().
3. PDO provides it's own escape method PDO::quote().
4. PostgreSQL has a wide variety of escape functions: pg_escape_literal() for values, pg_escape_bytea() for columns of type bytea, pg_escape_identifier() is used for escaping identifiers (e.g. table, field names).
5. When trying to pass user input to the command line, use escapeshellarg() and escapeshellcmd() to escape the input.
6. When displaying non-HTML user input anywhere on a webpage, always use htmlentities() or htmlspecialchars().
This one is a little awkward, but I've seen it before so I thought it's worth mentioning: when including user input in URLs, use urlencode() instead of addslashes()!
If you have more suggestions for safe escaping, please leave them in the comments below. Happy safe coding!
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/301743/viewspace-734284/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 為什麼使用API?什麼情況下避免使用API?API
- php倒數計時出現-0的情況PHP
- oracle order by索引是否使用的情況Oracle索引
- PHP 每日一函式 — 字串函式 addslashes ()PHP函式字串
- 維護無線網路安全五種必須避免的情況(轉)
- 預設情況下 80% 的 Android 應用正在使用加密流量Android加密
- 記一次使用Oauth的情況OAuth
- 公司使用大資料的基本情況大資料
- PHP函式漏洞審計之addslashes函式-PHP函式
- 什麼情況下不應該使用 Windows Linux 子系統WindowsLinux
- [zt] Oracle不使用索引的幾種情況Oracle索引
- 在 Vue 中如何避免在動態繫結 類 出現空 類 的情況?Vue
- PHP 使用 ZipArchive 解壓避免亂碼PHPHive
- 什麼情況下不能使用最壞情況評估演算法的複雜度?演算法複雜度
- Delphi Win32 API 使用的特殊情況 (轉)Win32API
- Mongodb記憶體管理和使用情況情況查詢MongoDB記憶體
- 員工離職銷燬重要資料,企業如何避免這種情況?
- 不聯網的情況下,使用 electron-builder 快速打包全平臺應用UI
- php訪問目標網站時出現亂碼的情況PHP網站
- 觀察者Observer模型事件,使用注意情況Server模型事件
- mysql索引失效的情況MySql索引
- NoClassDefFoundError的兩種情況Error
- PHP高併發情況下防止商品庫存超賣PHP
- DreamWeaver中應用CSS樣式表的幾種情況CSS
- 4.3.4.1 在不使用Oracle OMF的情況下建立CDBOracle
- 在不使用 mv 命令的情況下移動檔案
- 深入分析幾種PHP獲取客戶端IP的情況轉PHP客戶端
- 開發者應該避免使用的6個Java功能Java
- 使用 Docker 容器應該避免的 10 個事情Docker
- PHP關於反斜槓處理函式addslashes()和stripslashes()的用法PHP函式
- gorm使用事務併發情況下切有最大mysql連線數限制的情況下的BUG,踩坑了GoORMMySql
- 監測伺服器php-fpm情況,自動重啟。伺服器PHP
- Mysql 可能鎖表的情況MySql
- Oracle其它情況的恢復Oracle
- DOM對映的特殊情況
- 觸發JVM進行Full GC的情況及應對策略JVMGC
- Eclipse-Eclipse和對應的Jdk版本匹配情況EclipseJDK
- 在不影響程式使用的情況下新增shellcode