避免xss就足够了吗
Is it enough to avoid xss?
当用户放置<script>alert('Hello');</script>
在我的网站上,即评论部分,其翻译为:<脚本>alert(你好)<脚本>这足以避免xss攻击我的网站吗?
如果将每个<
转换为<
,将每个>
转换为>
,则将阻止用户输入任何html标记。所以这就足够了。
也看看这些例子,以提高网站的安全性:
1.反射XSS的最佳安全性:
<?php
// Is there any input?
if( array_key_exists( "name", $_GET ) && $_GET[ 'name' ] != NULL ) {
// Check Anti-CSRF token
checkToken( $_REQUEST[ 'user_token' ], $_SESSION[ 'session_token' ], 'index.php' );
// Get input
$name = htmlspecialchars( $_GET[ 'name' ] );
// Feedback for end user
echo "<pre>Hello ${name}</pre>";
}
// Generate Anti-CSRF token
generateSessionToken();
?>
2.存储XSS的最佳安全性:
<?php
if( isset( $_POST[ 'btnSign' ] ) ) {
// Check Anti-CSRF token
checkToken( $_REQUEST[ 'user_token' ], $_SESSION[ 'session_token' ], 'index.php' );
// Get input
$message = trim( $_POST[ 'mtxMessage' ] );
$name = trim( $_POST[ 'txtName' ] );
// Sanitize message input
$message = stripslashes( $message );
$message = mysql_real_escape_string( $message );
$message = htmlspecialchars( $message );
// Sanitize name input
$name = stripslashes( $name );
$name = mysql_real_escape_string( $name );
$name = htmlspecialchars( $name );
// Update database
$data = $db->prepare( 'INSERT INTO guestbook ( comment, name ) VALUES ( :message, :name );' );
$data->bindParam( ':message', $message, PDO::PARAM_STR );
$data->bindParam( ':name', $name, PDO::PARAM_STR );
$data->execute();
}
// Generate Anti-CSRF token
generateSessionToken();
?>
相关文章:
- 如何将函数包装在函数中以避免代码重复
- 如何防止在使用.val()时引入XSS漏洞
- 如果类不是一个选项,如何在使用 jQuery 时控制(避免)嵌套 html 元素的样式
- Typescript angularjs$http获取响应类型(避免使用<any>)
- 避免键入一些特殊字符
- 在JavaScript类型的函数中避免self-this
- 避免在if condition-Javascript中使用函数
- 如何避免在angular上多次调用方法;s ng重复
- PHP REST服务抛出异常——希望避免控制台错误
- XSS通过地址栏注入
- 当文本不断变化时,如何避免在按钮内移动文本
- 如何避免在树上走两次
- 如何照顾CSRF&单页应用程序中不使用cookie的XSS攻击
- 如何使用按键避免图像闪烁
- 避免xss就足够了吗
- 避免使用XSS,并允许使用JavaScript使用一些html标签
- 安全的Node.js聊天(避免XSS)
- 在回显post HTML时避免XSS
- 将用户内容输出到JavaScript变量(避免XSS)
- 在存储HTML时避免XSS攻击