草庐IT

php - sql注入(inject)改变返回值

我最近想到了这样的事情:$sql="SELECTpasswordFROMusersWHEREuser='".$_POST["user"]."'";$result=mysql_query($sql);if(myql_num_rows($result)!=1){//Error}$data=mysql_fetch_array($result);if($data["password"]==md5($_POST["password"])){//Welcome}else{//Error}即使没有使用参数化查询或至少转义,我也想不出一个合适的sql注入(inject),您可以通过它到达Welcome

php - 在用户生成的 SQL 正则表达式中避免 SQL 注入(inject)

我正在创建一个网站,不幸的是,用户必须提供要在MySQLWHERE子句中使用的正则表达式。当然,我必须验证用户输入以防止SQL注入(inject)。该网站是用PHP制作的,我使用以下正则表达式来检查我的正则表达式:/^([^\\\\\']|\\\.)*$/由于PHP处理正则表达式的方式,这是双重转义。它应该工作的方式是只匹配安全的正则表达式,没有未转义的单引号。但由于主要是自学成才,我想知道这样做是否安全。 最佳答案 如果使用preparedstatements,SQL注入(inject)是不可能的。您应该始终使用准备好的语句。Ro

php - 易受 SQL 注入(inject)攻击的 GET 参数 - PHP

我被要求处理由另一位程序员建立的网站的安全问题。到目前为止,我还没有看到任何代码,所以我现在不做假设了,我想介绍一下我的基础。托管该站点的小组进行了安全检查,发现他们的代码容易受到SQL注入(inject)攻击。示例:www.example.com/code.php?pid=2&ID=35(GET参数ID易受SQL注入(inject)攻击)现在,因为我是新手,我已经解释过我可能会与主机一起解决问题,但他们的网站仍然需要由对安全有更深入了解的人来检查。因此,为了处理潜在的SQL注入(inject)(并且没有看到代码),我会使用mysql_real_escape_string:$query

php - 考虑到 SQL 注入(inject),这种 PHP 登录技术安全吗?

我正在调查某个PHP开发人员很久以前编写的网站,我想知道他使用的登录技术是否安全。这是他的做法:$username='';$username=escapeshellcmd($HTTP_POST_VARS['user']);$pwd=escapeshellcmd($HTTP_POST_VARS['pw']);$loginerror=false;if($logout=="1"){closesession($s_id);$username='';$logged=false;}$logged=checksession(session_id(),$ipaddr);if((!$logged)&&(

javascript - 防止 JavaScript/Node.js 中的 SQL 注入(inject)

我正在使用Node.js创建一个Discord机器人。我的一些代码如下所示:varinfo={userid:message.author.id}connection.query("SELECT*FROMtableWHEREuserid='"+message.author.id+"'",info,function(error){if(error)throwerror;});人们说我输入message.author.id的方式不安全。我怎样才能做到这一点?举个例子? 最佳答案 最好的方法是使用准备好的语句或查询(链接到NPMmysql模

mysql - 如何使用 SQL 注入(inject)更新表?

如何使用SQL注入(inject)更新MySQL数据库中的表?我听说我们如何在地址栏中输入查询,并且可以更新MySQL数据库中的表。但我不确定。请专业人士给我一个想法... 最佳答案 您可能想尝试输入Robert');DROPTABLE学生;--在你的表单中:)在上面xkcdcartoon,Bobby可能被要求在表格中填写他的名字,但他恶作剧地插入了Robert');DROPTABLE学生;--作为他的名字。现在想象一下,如果在这个查询中使用了该输入:SELECT*FROMstudentsWHEREname='$input'如您所见

mysql - 你能发现 SQL 注入(inject)吗?

我是2600看的,这篇文章也在这里https://viaforensics.com/mobile-security/static-code-analysis-watchtower.html不管怎样,有一个代码块:$result=mysql_query("SELECT*FROMusersWHEREusername='{$_GET['username']}'AND`password`=SHA1('{$_GET['password']}')")作者说“2600的读者会发现明显的SQL注入(inject),但似乎很多程序员——值得注意的是——不会。”谁能解释并指出他的意思?对我来说,我的猜测是

php - 这行 PHP 是否足以防止 MySQL 注入(inject)?

我有以下代码通过PHP向我的MySQL数据库添加一条记录:联系人只是一个普通字符串。$contact=mysql_real_escape_string(stripslashes($_POST["contact"]),$con);$sql="INSERTINTOcustom_downloads(contact)VALUES('$contact')";这足以防止任何类型的SQL注入(inject)攻击吗?我还能做些什么来清理数据? 最佳答案 是的,mysql_real_escape_string将正确地转义字符串,因此这对于SQL注入(

php - 为防止 XSS 和 SQL 注入(inject)而限制的字符列表?

我已经阅读了很多文章以找到一个简单的字符列表,这些字符可以限制用户输入以保护我的网站免受XSS和SQL注入(inject)攻击,但找不到任何通用列表。在这方面,有人可以简单地给我一个安全或不安全字符的列表来帮助我吗?我知道这可能是特定于字段的,但我需要将其用于我希望允许最大可能字符的文本字段。 最佳答案 “黑名单”方法充满了问题。对于SQLi和XSS,针对白名单的输入验证是必不可少的,即定义您期望而不是您不期望的内容。还请记住,用户输入-或“不受信任的数据”-来自许多地方:表单、查询字符串、header、ID3和exif标签等。对于

php - 4 0' OR ' 1'=' 1 这个容易被sql注入(inject)?

我开发了一个简单的sql注入(inject)研究应用程序,我在其中搜索rate40'OR'1'='1所以它从数据库表中检索所有记录我知道如何解决这个问题,但我不知道40'OR'1'='1当我通过40'OR'1'='1谁能简要地告诉我当我在搜索框中输入40'OR'1'='1时会发生什么??希望得到快速积极的回应...";echo"Name".$row['name']."";echo"Rate".$row['rate']."";}?> 最佳答案 这就是SQL注入(inject)的确切工作方式想象一下对数据库的查询。通常它会是这样的:se