473,799 Members | 3,098 Online
Bytes | Software Development & Data Engineering Community
+ Post

Home Posts Topics Members FAQ

_SESSION weirdness behind a NAT firewall/router: bug?

Someone please tell me if I've discovered a PHP bug.

I'm sitting in front of several computers on my home network, behind
a NAT firewall/router. I am testing my web site on these different
computers (running different browsers, logged in as different users,
etc.). My web site keeps track of users logged in through the use
of $_SESSION.

Here's the bizarre thing: All computers are logged off, then I log
into my web site with one computer -- and when I browse my site from
another computer it behaves as if logged in! And if I log off with
one computer, all other computers subsequently behave as if logged
off! This happens also with different browsers (say IE and Opera)
running on the same machine.

This is especially serious because I have four classes of users:
non-logged-in visitor, logged-in user, paying customer, and
superuser. Logging in as superuser, for example, gives superuser
privileges to ALL computers on my home network!

AAAARRRGH!! I can't figure this out. It seems that $_SESSION is
using *only* my IP address and no unique identifying information
from the browsers on my network. Is this a php bug?

Background:

Here is basically what I'm doing. All scripts first contain a
require_once() directive that includes a file which executes the
following statements right up front:

session_save_pa th("/home/mydomain/public_html/lists");
session_name('l ogin_settings') ;
session_start() ;

(Naturally, the save path exists, and it contains session data
files.) Then, each script calls a function isLoggedOn() to
determine the type of user logged in, if any:

function isLoggedOn()
{
if (isset($_SESSIO N['superuser']))
return 'superuser';
if (isset($_SESSIO N['customer']))
return 'customer';
if (isset($_SESSIO N['user']))
return 'user';
return NULL; // unregistered or not logged in
}

Upon receiving the return value from isLoggedOn(), the script
behaves exactly the way it should depending on what type of user is
logged in. The value of $_SESSION['user'], $_SESSION['customer'],
and $_SESSION['superuser'] is the user's ID in the MySQL table for
that user type; the value is set by a login.php script.

I have three login.php scripts: for normal users, customers, and
superuser. Each login.php script queries the appropriate database
for user ID and password, and then sets some $_SESSION values.
Here, for example, is what happens with $_SESSION when a normal user
logs in. Note that it ensures that the customer and superuser types
are unset upon this login:

if ($sql->rows) {
$userid = $sql->GetValue('id') ;
if ($userid) {
$_SESSION['user'] = $userid;
if (isset($_SESSIO N['admin']))
unset($_SESSION['customer']);
if (isset($_SESSIO N['superuser']))
unset($_SESSION['superuser']);
header("Locatio n: http://www.example.com/userindex.php") ;
} else header("Locatio n: http://www.example.com/login.php?error =1")
} else header("Locatio n: http://www.example.com/login.php?error =1")

Logging off shouldn't leave anything behind from prior users,
deleting all $_SESSION data, killing the session cookie, and finally
calling session_destroy (). So here's my logout.php script for all
user types. It does seem to work correclty:

$CookieInfo = session_get_coo kie_params();
$_SESSION = array(); // unset all session values

if ((empty($Cookie Info['domain'])) && (empty($CookieI nfo['secure'])))
setcookie(sessi on_name(), '', time()-3600, $CookieInfo['path']);
elseif (empty($CookieI nfo['secure']))
setcookie(sessi on_name(), '', time()-3600, $CookieInfo['path'],
$CookieInfo['domain']);
else
setcookie(sessi on_name(), '', time()-3600, $CookieInfo['path'],
$CookieInfo['domain'], $CookieInfo['secure']);
unset($_COOKIE[session_name()]);
session_destroy ();

I'm at my wit's end, almost ready to manage my own cookies and dump
this PHP session handling stuff. I'd rather not though; I like
having the one session cookie with sensitive data stored on the
server. *Other* sites don't behave this way if I log into them
simultaneously from different computers on my home network. What's
wrong with MY site??

-Alex
Jul 30 '06
21 3073
axlq wrote:
In article <8o************ *************** ***@comcast.com >,
Jerry Stuckle <js*******@attg lobal.netwrote:
>>axlq wrote:
>>>The real problem is that the web hosting server seems to think that
every computer on my home network shares the same session ID, and I
don't know what to do about it. I haven't made the web site public
yet. I certainly can't do so as long as $_SESSION poses such a huge
security risk. There are much more than just home networks behind
NAT firewall/routers. If multiple people in a large organization
try to access my site, all kinds of conflicts will occur.

The web server doesn't keep track of the session like that. It sends a
cookie to the browser with the session id, and the browser keeps track
of the id.


It sends a cookie to ONE browser. Once this cookie is set and the
session established on the server, the cookie doesn't seem to get
used any more.
It does on my systems. But all I uses is session_start() - not all the
rest of the stuff you use.
>
>>However, that also depends on your PHP.INI file. You should have
session.use_c ookies = 1
in your php.ini file.


It's set that way already.
Then it should use cookies automatically, You shouldn't need the rest
of it that stuff.
>
>>But I'm also not sure why you're using those other calls - such as
session_save_ path and session_name(). These should be set up in your
php.ini file and you shouldn't need to override them.


Two reasons:

1. This is a shared server, I don't own php.ini, I didn't want to
use the /tmp path already set in it, and I didn't like the default
session name set in it.

2. I can set my own php.ini, but I may have multiple web sites under
the same account, so I preferred having each site's sessions have
their own path -- therefore I set session_save_pa th and session_name
in the script. It shouldn't make any difference as long as these
settings are consistent in every invocation of my scripts.
So? It's a shared server. Sure, someone can access your session info
in /tmp - but only if they know the session id, which is VERY hard to
guess. And BTW - the could access the information in your own
directory, also. This is worse than no security - it is false security;
making you think your data is safe when you've actually gained nothing.

Just don't keep sensitive information like passwords in the session.
Or, if you must, encrypt it.
>
>>I'm also not sure why you're using set_cookie on the session name.


That's only to delete the session cookie when logging off. This was
recommended in a php documentation page somewhere, so I pretty much
just lifted the code from there. set_cookie isn't used anywhere else
on my site except for the one logoff script.

-A
Whatever. Works fine for me without it just by calling
session_destroy (). Then the cookie would have an invalid session ID,
which is just fine, also.

I don't think this is a PHP problem - it's in something you're doing.
Check phpinfo() to ensure your settings are as you expect and you're
using the php.ini you think you're using.

As for other browsers getting the session information - the only way
they would get this is if the server were sending the same information
and/or the pages are cached somewhere between the server and your
internal network.

--
=============== ===
Remove the "x" from my email address
Jerry Stuckle
JDS Computer Training Corp.
js*******@attgl obal.net
=============== ===
Jul 30 '06 #11
Rik
axlq wrote:
Followup to my own post. I think I have solved the problem by
forcing regeneration of the session ID if the session ID has the
value 'deleted' -- like this:

session_start() ;
if (session_id() == 'deleted')
session_regener ate_id(true);

As far as my tests have shown, this prevents multiple browsers
from sharing the 'sess_deleted' session file on the server, if
those browsers have a deleted session cookie and are attempting to
re-log-in to my site.

This has nothing to do with being behind a NAT.
Hmmm, when I

file1.php
<?
session_name('c heck_name');
session_start() ;
$_SESSION['var1'] = 'something';
?>

file2.php

<?php
session_name('c heck_name');
session_start() ;
$_SESSION = array();
setcookie(sessi on_name(),'',ti me()-3600,'/');
session_destroy ();
?>

There doesn't appear a 'sess_deleted' file. the sess_{random_st ring} file
just disappears. This is also true with a custom save path. Even adding a
session_start() directly after it, or on a redirect, will create a totally
new unique sess_file.

Allthough you have a workaround now, could you maybe post you total logout
script (for I still think there's the error) and not just the excerpt?
Otherwise, it will haunt me for days :-)

Grtz,
--
Rik Wasmus
Jul 30 '06 #12
In article <53************ *************** @news2.tudelft. nl>,
Rik <lu************ @hotmail.comwro te:
>Hmmm, when I

file1.php
<?
session_name(' check_name');
session_start( );
$_SESSION['var1'] = 'something';
?>

file2.php

<?php
session_name(' check_name');
session_start( );
$_SESSION = array();
setcookie(sess ion_name(),'',t ime()-3600,'/');
session_destro y();
?>

There doesn't appear a 'sess_deleted' file.
Do you access file1.php and file2.php from your browser, and keep your
browser open? Does your session cookie have the value 'deleted'?

According to the documentation at
http://www.php.net/manual/en/ref.session.php I'm not the only one
who sees a sess_deleted file when terminating a session. Maybe it's
an Apache thing for my ISP's particular configuration of the server.
>Allthough you have a workaround now, could you maybe post you total
logout script (for I still think there's the error) and not just
the excerpt? Otherwise, it will haunt me for days :-)
No problem, but it's several files. I think you might have a server
configuration that simply won't create a sess_deleted file.

logout.php:
=============== =============== =============== =============== ========
<?php
require_once('c lass_lib/class.setup.php ');

$CookieInfo = session_get_coo kie_params();
$_SESSION = array(); // unset all session values

if ((empty($Cookie Info['domain'])) && (empty($CookieI nfo['secure'])))
setcookie(sessi on_name(), '', time()-3600, $CookieInfo['path']);
elseif (empty($CookieI nfo['secure']))
setcookie(sessi on_name(), '', time()-3600, $CookieInfo['path'],
$CookieInfo['domain']);
else
setcookie(sessi on_name(), '', time()-3600, $CookieInfo['path'],
$CookieInfo['domain'], $CookieInfo['secure']);
unset($_COOKIE[session_name()]);
session_destroy ();
header("Locatio n: ".WWW_PATH."ind ex.php");
?>
=============== =============== =============== =============== ========

That big 'if' statement above to delete the session cookie is
lifted directly from the example at the bottom of this page:
http://us3.php.net/manual/en/functio...on-destroy.php

class_lib/class.setup.php contains the following at the beginning; the
rest is smarty template manager setup needed by all scripts except
logout.php, so that stuff isn't relevant.

class_lib/class.setup.php :
=============== =============== =============== =============== ========
<?php
// configs.php defines PROG_PATH, WWW_PATH, and a bunch of other stuff
require_once('/home/mydomain/public_html/configs.php');

session_save_pa th(PROG_PATH."/lists");
session_name('l ogin_settings') ;
session_start() ;
if (session_id() == 'deleted') session_regener ate_id(true);

/* smarty setup class and isLoggedOn() function goes here... */
?>
=============== =============== =============== =============== ========

-Alex
Jul 31 '06 #13
In article <_-*************** *************** @comcast.com>,
Jerry Stuckle <js*******@attg lobal.netwrote:
>It sends a cookie to ONE browser. Once this cookie is set and the
session established on the server, the cookie doesn't seem to get
used any more.

It does on my systems. But all I uses is session_start() - not all the
rest of the stuff you use.
Sorry for my sloppiness - the cookie gets READ, but only WRITTEN
once upon the first access to the site, and then again when it's
deleted. If the value of the cookie matches the file name of a
session, it seems to be considered a valid session cookie. So if
the cookie has the value 'deleted' (which session cookies do until
you close the browser), and it matches the ID for sess_deleted on
the server, then sess_deleted gets used for the session, causing
user account collisions.
>>>But I'm also not sure why you're using those other calls - such as
session_save _path and session_name(). These should be set up in your
php.ini file and you shouldn't need to override them.

Two reasons:

1. This is a shared server, I don't own php.ini, I didn't want to
use the /tmp path already set in it, and I didn't like the default
session name set in it.

2. I can set my own php.ini, but I may have multiple web sites under
the same account, so I preferred having each site's sessions have
their own path -- therefore I set session_save_pa th and session_name
in the script. It shouldn't make any difference as long as these
settings are consistent in every invocation of my scripts.

So? It's a shared server. Sure, someone can access your session info
in /tmp - but only if they know the session id, which is VERY hard to
guess. And BTW - the could access the information in your own
directory, also.
No, they can't. How? An .htaccess file prevents any kind of access
through the web server, and the session files have permissions only
for apache.
>Just don't keep sensitive information like passwords in the session.
I don't. Submitting a correct password during login is what
establishes the session data, which consists of just basic
information like the user ID and last page accessed.
>>>I'm also not sure why you're using set_cookie on the session name.

That's only to delete the session cookie when logging off. This was
recommended in a php documentation page somewhere, so I pretty much
just lifted the code from there. set_cookie isn't used anywhere else
on my site except for the one logoff script.

Whatever. Works fine for me without it just by calling
session_destro y(). Then the cookie would have an invalid session ID,
which is just fine, also.
I'm going by the php documentation at
http://www.php.net/manual/en/functio...on-destroy.php which
states: "In order to kill the session altogether, like to log the
user out, the session id must also be unset. If a cookie is used to
propagate the session id (default behavior), then THE SESSION COOKIE
MUST BE DELETED" (emphasis mine). The example that follows this
sentence shows how to kill the cookie. I use the expanded example
given at the very bottom of that page.
>I don't think this is a PHP problem - it's in something you're doing.
It's neither a problem or something I'm doing; it's a feature :)
>Check phpinfo() to ensure your settings are as you expect and you're
using the php.ini you think you're using.
They are and I am.
>As for other browsers getting the session information - the only
way they would get this is if the server were sending the same
information and/or the pages are cached somewhere between the
server and your internal network.
Well, one way the problem could happen is if two or more browsers
have the same session ID set in their cookie. And that's exactly
what happened here: other browsers have identical cookies, with
the value 'deleted' for the session ID, which corresponds to the
sess_deleted file on the server.

I believe this should even work for valid session IDs if you knew
a valid id and spoofed it from another browser. Log in with one
browser to get a session id, then manually edit the cookie in
another browser to be identical to that in the first browser. Now
both browsers will act as if they're logged into the same user
account.

-Alex
Jul 31 '06 #14
In article <ea**********@b lue.rahul.net>, axlq <ax**@spamcop.n etwrote:
>>>>But I'm also not sure why you're using those other calls - such as
session_sav e_path and session_name().
I forgot to mention that using session_save_pa th() set to your own
directory is one way to avoid an early 20-minute session expiration
that one gets on some servers if using the default path. I was
experiencing that. So I went on a search for the reason, during
which I found the trick with session_save_pa th().

-Alex
Jul 31 '06 #15
axlq wrote:
In article <_-*************** *************** @comcast.com>,
Jerry Stuckle <js*******@attg lobal.netwrote:
>>>It sends a cookie to ONE browser. Once this cookie is set and the
session established on the server, the cookie doesn't seem to get
used any more.

It does on my systems. But all I uses is session_start() - not all the
rest of the stuff you use.


Sorry for my sloppiness - the cookie gets READ, but only WRITTEN
once upon the first access to the site, and then again when it's
deleted. If the value of the cookie matches the file name of a
session, it seems to be considered a valid session cookie. So if
the cookie has the value 'deleted' (which session cookies do until
you close the browser), and it matches the ID for sess_deleted on
the server, then sess_deleted gets used for the session, causing
user account collisions.
Hmmm, is register_global s on in your system? That could be part of what
you're seeing. But again - I don't use cookies to keep track of
sessions. I let the session take care of itself and just destroy it at
the end.
>
>>>>But I'm also not sure why you're using those other calls - such as
session_sav e_path and session_name(). These should be set up in your
php.ini file and you shouldn't need to override them.

Two reasons:

1. This is a shared server, I don't own php.ini, I didn't want to
use the /tmp path already set in it, and I didn't like the default
session name set in it.

2. I can set my own php.ini, but I may have multiple web sites under
the same account, so I preferred having each site's sessions have
their own path -- therefore I set session_save_pa th and session_name
in the script. It shouldn't make any difference as long as these
settings are consistent in every invocation of my scripts.

So? It's a shared server. Sure, someone can access your session info
in /tmp - but only if they know the session id, which is VERY hard to
guess. And BTW - the could access the information in your own
directory, also.


No, they can't. How? An .htaccess file prevents any kind of access
through the web server, and the session files have permissions only
for apache.
Very simple. Everyone on the server is using the same Apache - and
therefore the same Apache user. They can easily write a PHP, PERL or
whatever program to access files from their server to your site through
fopen(), etc. Such access also bypasses .htaccess.
>
>>Just don't keep sensitive information like passwords in the session.


I don't. Submitting a correct password during login is what
establishes the session data, which consists of just basic
information like the user ID and last page accessed.

>>>>I'm also not sure why you're using set_cookie on the session name.

That's only to delete the session cookie when logging off. This was
recommende d in a php documentation page somewhere, so I pretty much
just lifted the code from there. set_cookie isn't used anywhere else
on my site except for the one logoff script.

Whatever. Works fine for me without it just by calling
session_destr oy(). Then the cookie would have an invalid session ID,
which is just fine, also.


I'm going by the php documentation at
http://www.php.net/manual/en/functio...on-destroy.php which
states: "In order to kill the session altogether, like to log the
user out, the session id must also be unset. If a cookie is used to
propagate the session id (default behavior), then THE SESSION COOKIE
MUST BE DELETED" (emphasis mine). The example that follows this
sentence shows how to kill the cookie. I use the expanded example
given at the very bottom of that page.
Yes, the session id itself should be unset. However, since there is no
data associated with the session (at least after the end of this
script), there should be no problem.

The problem here is where someone uses the presence of the session to
determine whether the user is logged in or not. I use parameters within
the session. And if you call session_destroy () this information is gone
once the current script finishes.
>
>>I don't think this is a PHP problem - it's in something you're doing.


It's neither a problem or something I'm doing; it's a feature :)

>>Check phpinfo() to ensure your settings are as you expect and you're
using the php.ini you think you're using.


They are and I am.

>>As for other browsers getting the session information - the only
way they would get this is if the server were sending the same
information and/or the pages are cached somewhere between the
server and your internal network.


Well, one way the problem could happen is if two or more browsers
have the same session ID set in their cookie. And that's exactly
what happened here: other browsers have identical cookies, with
the value 'deleted' for the session ID, which corresponds to the
sess_deleted file on the server.

I believe this should even work for valid session IDs if you knew
a valid id and spoofed it from another browser. Log in with one
browser to get a session id, then manually edit the cookie in
another browser to be identical to that in the first browser. Now
both browsers will act as if they're logged into the same user
account.

-Alex
Of course, if you go and manually edit the session id you're going to
get an identical session. What else do you expect?

But under normal conditions two browsers should not be getting the same
session id. It's a long (32 char, IIFC) hex value which shouldn't be
duplicated - and shouldn't be guessable by chance.
--
=============== ===
Remove the "x" from my email address
Jerry Stuckle
JDS Computer Training Corp.
js*******@attgl obal.net
=============== ===
Jul 31 '06 #16
axlq wrote:
In article <ea**********@b lue.rahul.net>, axlq <ax**@spamcop.n etwrote:
>>>>>But I'm also not sure why you're using those other calls - such as
>session_sa ve_path and session_name().


I forgot to mention that using session_save_pa th() set to your own
directory is one way to avoid an early 20-minute session expiration
that one gets on some servers if using the default path. I was
experiencing that. So I went on a search for the reason, during
which I found the trick with session_save_pa th().

-Alex
You can also do it by resetting the lifetime with
session_set_coo kie_parms();

--
=============== ===
Remove the "x" from my email address
Jerry Stuckle
JDS Computer Training Corp.
js*******@attgl obal.net
=============== ===
Jul 31 '06 #17

Jerry Stuckle wrote:
>
Of course, if you go and manually edit the session id you're going to
get an identical session. What else do you expect?

But under normal conditions two browsers should not be getting the same
session id. It's a long (32 char, IIFC) hex value which shouldn't be
duplicated - and shouldn't be guessable by chance.

This also illustrates the use of having a good session_id generator.
Its not impossible to guess a session id using brute force and
statistics. Of course, the attacker needs to generate a large number
of session ids to figure out what ones are possibly active, then figure
out which of those have information he wants. The chances of that are
relatively remote, but not out of the realm of possibility. If you're
really worried about security that much, then its something to keep in
mind.

Jul 31 '06 #18
Richard Levasseur wrote:
Jerry Stuckle wrote:

>>Of course, if you go and manually edit the session id you're going to
get an identical session. What else do you expect?

But under normal conditions two browsers should not be getting the same
session id. It's a long (32 char, IIFC) hex value which shouldn't be
duplicated - and shouldn't be guessable by chance.



This also illustrates the use of having a good session_id generator.
Its not impossible to guess a session id using brute force and
statistics. Of course, the attacker needs to generate a large number
of session ids to figure out what ones are possibly active, then figure
out which of those have information he wants. The chances of that are
relatively remote, but not out of the realm of possibility. If you're
really worried about security that much, then its something to keep in
mind.
Yes, but if you're that worried about security you should have a
dedicated server and perform your own session handling and not leave it
to PHP's default handling.

--
=============== ===
Remove the "x" from my email address
Jerry Stuckle
JDS Computer Training Corp.
js*******@attgl obal.net
=============== ===
Jul 31 '06 #19
ax**@spamcop.ne t (axlq) wrote:
No, as I posted elsewhere in this thread, I've identified the
problem as arising from multiple users sharing the same sess_deleted
session file after logging off and then re-logging in. I think now
it's unlikely to have anything to do with a NAT or http proxy.

I'm not sure what to do about this yet.
Why don't you log people out by just erasing everything in their session
with session_destroy ()?

Does it matter to you whether the session cookie itself is gone?

miguel
--
Photos from 40 countries on 5 continents: http://travel.u.nu
Latest photos: Malaysia; Thailand; Singapore; Spain; Morocco
Airports of the world: http://airport.u.nu
Jul 31 '06 #20

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

0
9672
by: Eric | last post by:
Hi, I am new to internet programming. I would now like to create a platform which allow two users behind different boardband router to exchange files. There are only two users in the system and I have no right to modify the boardband router. I have check up some p2p applications like jxta and winmx. I have made some guess how the system works: Their is a relay server or a service outside the Internet. Computer A
2
2786
by: Rajesh Kapur | last post by:
Hello, We use Informix and MySQL on linux/unix to drive our web application. SQL*Server is used only for backend enterprise applications within the firewall. I am trying to get the management to use SQL*Server outside the firewall. They tell me there are security issues with Microsoft products, including SQL*Server, that make it vulnerable to attacks outside the firewall. Can someone please point me to white papers/documentation that...
5
980
by: Bill Hauver | last post by:
I am attempting to use a web service from my work pc which is behind a firewall. I have used wsdl.exe to create the web service reference class and added it to my project. (this seems to work without a hitch). Before I use this class, I make the necessary calls to instantiate a WebProxy class and then pass in my credentials to set the WebProxy.Credentials property so I can get through the proxy server.
10
1774
by: John | last post by:
Hi I am using ms internet control in my app. It works fine form all machines except from a new one which has win xp sp2 installed. All machines are part of a small business server 2003 domain so have the isa server firewall client as well. Unfortunately I can't find a way to disable xp firewall once it is connected to the domain. How do I get past the xp firewall for internet control to work? Thanks
4
2416
by: Sean | last post by:
Hi, I'm programming an IRC bot. I'm trying to establish a dcc connection with another IRC client. I give the ipaddress and port number to the client in the request. I listen to that port with TcpListener on IPAddress.Any. The listener never receives a connection. My situation is the bot computer is behind a router. Is there something special that must be done to bind to the router's port? Thanks,
1
1963
by: Coder | last post by:
Is there anyway to access this webservice that is behind a router/firewall? - Thanks.
4
1849
by: =?Utf-8?B?SmF5RFA=?= | last post by:
HELP! I have a small home network setup. One Desktop for me, one dektop for my two girls, a laptop for work, my wife's laptop, and my son's laptop for college work. All in "WORKGROUP" connected through wireless Verizon FIOS broadband router. I had Zone Alarm FREE as the firewall. I also have CAI Anti-Virus. Both CAI Anti-Virus and Zone Alarm FREE needed an update.
2
3998
by: PW | last post by:
I have a Netgear DG834G (v3) wireless router. I also host an ASP website from my home computer. I had a problem when I first got this router that was blocking requests from outside from seeing the website. I overcame that problem by adding a firewall rule and everything has been working fine for months. Then last night I had my computer hang several times on a file called agp440.sys. After many attempts I finally got that problem...
9
10743
by: cnixuser | last post by:
Hi, I was wondering if someone could give me some general pointers about creating client server applications that would be able to communicate with each other over not just the LAN which I am able to do, but would be able to communicate with each other and exchange filestreams over the internet, meaning in most cases communication with PC's behind a router and / or a gateway server. I have applications that can send messages to each other and...
0
9687
marktang
by: marktang | last post by:
ONU (Optical Network Unit) is one of the key components for providing high-speed Internet services. Its primary function is to act as an endpoint device located at the user's premises. However, people are often confused as to whether an ONU can Work As a Router. In this blog post, we’ll explore What is ONU, What Is Router, ONU & Router’s main usage, and What is the difference between ONU and Router. Let’s take a closer look ! Part I. Meaning of...
0
10484
Oralloy
by: Oralloy | last post by:
Hello folks, I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>". The problem is that using the GNU compilers, it seems that the internal comparison operator "<=>" tries to promote arguments from unsigned to signed. This is as boiled down as I can make it. Here is my compilation command: g++-12 -std=c++20 -Wnarrowing bit_field.cpp Here is the code in...
0
10251
jinu1996
by: jinu1996 | last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven tapestry of website design and digital marketing. It's not merely about having a website; it's about crafting an immersive digital experience that captivates audiences and drives business growth. The Art of Business Website Design Your website is...
1
10228
by: Hystou | last post by:
Overview: Windows 11 and 10 have less user interface control over operating system update behaviour than previous versions of Windows. In Windows 11 and 10, there is no way to turn off the Windows Update option using the Control Panel or Settings app; it automatically checks for updates and installs any it finds, whether you like it or not. For most users, this new feature is actually very convenient. If you want to control the update process,...
0
10027
tracyyun
by: tracyyun | last post by:
Dear forum friends, With the development of smart home technology, a variety of wireless communication protocols have appeared on the market, such as Zigbee, Z-Wave, Wi-Fi, Bluetooth, etc. Each protocol has its own unique characteristics and advantages, but as a user who is planning to build a smart home system, I am a bit confused by the choice of these technologies. I'm particularly interested in Zigbee because I've heard it does some...
0
9072
agi2029
by: agi2029 | last post by:
Let's talk about the concept of autonomous AI software engineers and no-code agents. These AIs are designed to manage the entire lifecycle of a software development project—planning, coding, testing, and deployment—without human intervention. Imagine an AI that can take a project description, break it down, write the code, debug it, and then launch it, all on its own.... Now, this would greatly impact the work of software developers. The idea...
1
7565
isladogs
by: isladogs | last post by:
The next Access Europe User Group meeting will be on Wednesday 1 May 2024 starting at 18:00 UK time (6PM UTC+1) and finishing by 19:30 (7.30PM). In this session, we are pleased to welcome a new presenter, Adolph Dupré who will be discussing some powerful techniques for using class modules. He will explain when you may want to use classes instead of User Defined Types (UDT). For example, to manage the data in unbound forms. Adolph will...
0
6805
by: conductexam | last post by:
I have .net C# application in which I am extracting data from word file and save it in database particularly. To store word all data as it is I am converting the whole word file firstly in HTML and then checking html paragraph one by one. At the time of converting from word file to html my equations which are in the word document file was convert into image. Globals.ThisAddIn.Application.ActiveDocument.Select();...
1
4141
by: 6302768590 | last post by:
Hai team i want code for transfer the data from one system to another through IP address by using C# our system has to for every 5mins then we have to update the data what the data is updated we have to send another system

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.